如何打开目录中的所有文件并将更改保存在同一文件中? [关闭]

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)

【讨论】:

感谢枚举工作很棒

以上是关于如何打开目录中的所有文件并将更改保存在同一文件中? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将文件保存到目录

Java - 如何读取同一目录中的所有文件

在 VSCode 中保存文件会删除 git repo 中的所有跟踪文件

如何完成这个python函数保存在同一个文件夹中?

列出路径中的所有目录,并将信息保存到文本文件中

如何将列表保存到临时目录中的泡菜文件并将该文件传递给函数?