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

时间:2016-07-28 10:30:22

标签: python text-files ioerror

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

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]没有这样的文件或目录:'thirdweek.txt'

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

2 个答案:

答案 0 :(得分:2)

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

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

同样适用于:

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

答案 1 :(得分:1)

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)