如何打开目录中的所有文件并将更改保存在同一文件中? [关闭]
Posted
技术标签:
【中文标题】如何打开目录中的所有文件并将更改保存在同一文件中? [关闭]【英文标题】:How to open all files in directory and save the changes on same file? [closed] 【发布时间】:2016-12-21 09:20:34 【问题描述】:我正在尝试编写循环遍历特定目录中所有 CSV 文件的脚本,读取它们,并将所有子字符串 _
替换为 0
。
我的代码是:
import csv
f = open ('Tripdata_30_20160806.CSV')
csv_f = csv.reader(f)
for i in csv_f:
for l in i:
if "_" in l:
print l.replace("_", "0")
print l
continue
f.close()
我的输出是:
2199725502 21997255_2 2199868606 21998686_6 2199726205 21997262_5 1756520101 17565201_1 1756384803 17563848_3如何在不指定文件名的情况下读取给定目录中的所有文件? CSV 文件名是动态的。
其次,我怎样才能将更改保存在同一个文件上?
【问题讨论】:
请展示你的尝试。 请注意***.com 不是免费的脚本/代码编写服务。如果您告诉我们到目前为止您已经尝试过什么(包括您已经在使用的脚本/代码)以及您遇到的问题,那么我们可以尝试帮助解决具体问题。您还应该阅读How do I ask a good question?。 我没有注意到我没有添加代码示例...请更改您的不良反馈,我应该按照要求重新发布。 【参考方案1】:如果您只想替换文件中的所有下划线,请不要使用 CSV 模块。只需读取文件,替换下划线,然后将修改后的文本写回文件。
filename = 'C:\\path\\to\\file.csv'
f = open(filename)
txt = f.read()
f.close()
f = open(filename, 'w')
f.write(txt.replace("_", "0"))
f.close()
要枚举目录的内容,您可以使用os.listdir()
:
import os
d = 'C:\\some\\folder'
for f in os.listdir(d):
filename = os.path.join(d, f)
【讨论】:
感谢枚举工作很棒以上是关于如何打开目录中的所有文件并将更改保存在同一文件中? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章