Python - 读取多个文件并写入多个新文件

问题描述

我知道有很多关于阅读和写作的内容,但我仍然没有完全找到我需要的具体内容

我有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)