【问题标题】:Write output of for loop to multiple files with same filename as input file将 for 循环的输出写入与输入文件具有相同文件名的多个文件
【发布时间】:2017-06-19 08:40:08
【问题描述】:

我在文件 filenames.txt 中有一个文件名列表。我正在一一打开所有文件,并希望将某些操作的结果写入不同的目录但文件名相同。到目前为止,我尝试了这个,但这不起作用。有什么帮助吗?

with open("/home/morty/filenames.txt","r") as f:
    names = [name.strip() for name in f]

for name in names:
    save=open("/home/morty/dir/%name" %name,"w")
    save.write(---some operation---)

我的问题与此类似,但我不想要由计数/枚举命名的文件。我希望名称与输入文件名相同: Write output of for loop to multiple files

【问题讨论】:

    标签: python python-2.7


    【解决方案1】:

    您的格式说明不正确。应该是"/home/morty/dir/%s" %name

    但是当你想用文件名加入目录名时,最好是这样使用os.path.join

    for name in names:
        with open(os.path.join("/home/morty/dir",name),"w") as save:
           save.write(---some operation---)
    

    (以及一个with 上下文块,以确保文件在完成后关闭)

    【讨论】:

      猜你喜欢
      • 2014-07-29
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      • 2020-08-08
      • 2017-08-26
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      相关资源
      最近更新 更多