如何使用 python 编辑目录中所有文本文件的行

How to edit lines of all text files in a directory with python

我想编辑和替换目录中所有 .txt 文件的行 python 为此,我使用以下代码:

path = '.../dbfiles'
for filename in os.listdir(path):
for i in os.listdir(path):
    if i.endswith(".txt"): 
        with open(i, 'r') as f_in:
            for line in f_in:
               line=tweet_to_words(line).encode('utf-8')  
               open(i, 'w').write(line)

其中 tweet_to_words(line) 是文本文件版本行的预定义函数。 虽然我不确定代码的逻辑是否正确!?我也面临以下错误:

IOError: [Errno 2] No such file or directory: 'thirdweek.txt'

但是目录中存在'thirdweek.txt'! 所以我的问题是看看我用于编辑文件中的行的方法是否正确!?如果是这样,我该如何解决错误?

使用时应添加基本路径 open:

        with open(path + '/' + i, 'r') as f_in:

同样适用于:

               open(path + '/' + i, 'w').write(line)

glob 模块对于获取具有相似结尾的文件很有用:

import glob

print glob.glob("*.txt")  # Returns a list of all .txt files, with path info

for item in glob.glob("*.txt"):
    temp = []  # Might be useful to use a temp list before overwriting your file
    with open(item, "r") as f:
        for line in f:
            print line  # Do something useful here
            temp.append(line)
    with open(item, "w") as f:
        f.writelines(temp)