如何使用 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)
我想编辑和替换目录中所有 .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)