为了这个目的,我想用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'存在于目录中! 所以我的问题是看看我用于编辑文件中的行的方法是否正确!?如果是,我该如何解决错误?
答案 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)