问题描述
我知道有很多关于阅读和写作的内容,但我仍然没有完全找到我需要的具体内容。
我有5个文件(即in1.txt、in2.txt、in3.txt....),我想打开/读取,通过我有的函数运行数据,然后输出新的返回值到相应的新文件(即 out1.txt、out2.txt、out3.txt....)
我想在一次程序运行中做到这一点。我不确定如何编写循环以在一次运行中处理所有编号的文件。
解决方法
如果您只想单独运行,您可以这样做:
import os
count = 0
directory = "dir/where/your/files/are/"
for filename in os.listdir(directory):
if filename.endswith(".txt"):
count += 1
with open(directory + filename,"r") as read_file:
return_of_your_function = do_something_with_data()
with open(directory + count + filename,"w") as write_file:
write_file.write(return_of_your_function)
,
如果你希望它们被串行处理,你可以使用如下的 for 循环:
inpPrefix = "in"
outPrefix = "out"
for i in range(1,6):
inFile = inPrefix + str(i) + ".txt"
with open(inFile,'r') as f:
fileLines = f.readlines()
# process content of each file
processedOutput = process(fileLines)
#write to file
outFile = outPrefix + str(i) + ".txt"
with open(outFile,'w') as f:
f.write(processedOutput)
注意:这里假设输入和输出文件与脚本位于同一目录中。
,给,你去!我会做这样的事情:
(假设所有输入的 .txt 文件都在同一个输入文件夹中)
input_path = '/path/to/input/folder/'
output_path = '/path/to/output/folder/'
for count in range(1,6):
input_file = input_path + 'in' + str(count) + '.txt'
output_file = output_path + 'out' + str(count) + '.txt'
with open(input_file,'r') as f:
content = f.readlines()
output = process_input(content)
with open(output_file,'w') as f:
w.write(output)