如何读取和写入多个文件?

18 投票
8 回答
101670 浏览
提问于 2025-04-11 09:35

我想写一个程序,功能是这样的:在一个文件夹里,我有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()

撰写回答