如何读取和写入多个文件?
我想写一个程序,功能是这样的:在一个文件夹里,我有n个文件;首先读取第一个文件,进行一些操作,然后把结果存储到一个单独的文件里。接着读取第二个文件,再进行操作,并把结果保存到新的第二个文件中。对n个文件都这样做。这个程序会一个一个地读取所有文件,并把每个文件的结果单独存储。请给我一些例子,告诉我该怎么做。
8 个回答
9
你可能会觉得 fileinput
这个模块很有用。它就是为解决这个问题而设计的。
13
import sys
# argv is your commandline arguments, argv[0] is your program name, so skip it
for n in sys.argv[1:]:
print(n) #print out the filename we are currently processing
input = open(n, "r")
output = open(n + ".out", "w")
# do some processing
input.close()
output.close()
然后像这样调用它:
./foo.py bar.txt baz.txt
18
我觉得你可能忽略了如何获取那个文件夹里的所有文件。要做到这一点,可以使用一个叫做glob的模块。下面是一个例子,它会把所有扩展名为*.txt的文件复制一份,变成扩展名为*.out的文件。
import glob
list_of_files = glob.glob('./*.txt') # create the list of file
for file_name in list_of_files:
FI = open(file_name, 'r')
FO = open(file_name.replace('txt', 'out'), 'w')
for line in FI:
FO.write(line)
FI.close()
FO.close()