python操作文件

python要像下面这样操作文件应该怎么做呢?

比如有个母版文件d:/test/city.py

# -*- coding: utf-8 -*-

class ShowCityName():
    cityName=city
    print(cityName)

我想把这个母版文件复制为:

d:/test/cities/beijing.py
d:/test/cities/shanghai.py

文件内容中的cityName=city也分别改成:

cityName=beijing
cityName=shanghai

我想写个代码来操作,应该怎么写呢?

阅读 2.3k
1 个回答

不大理解你的需求,一般这种情况会使用变量初始化类,只需要一个文件就可以应对任意数量的city了,例如

class ShowCityName(city_name):
    self.cityName=city_name
    print(cityName)

当然如果你一定要这么做,简单的方法是直接使用命令行:

sed 's/cityName/beijing/g' city.py > beijing.py

使用python的话,大概可以(没测试过)

cities = ['beijing', 'shanghai', 'hangzhou']  # and more as you demands
target_files = [target for target in map(lambda x: {'city': x, 'file': open(x, 'w')}, cities)]
with open('city.py') as f:
  for line in f:
     map(lambda x: x['file'].writeln(line.replace('cityName', x['city'])), target_files)
  map(lambda x: x['file'].close(), target_files)  
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题