📜  Python|将多个文件数据写入主文件(1)

📅  最后修改于: 2023-12-03 14:46:28.055000             🧑  作者: Mango

Python | 将多个文件数据写入主文件

在处理大量数据时,可能需要将多个文件中的数据合并到一个主文件中。使用Python可以轻松实现这一目标,下面介绍几种实现方式。

方法一:逐行读取

读取每个文件的每一行,然后将其写入主文件。

with open('main_file.txt', 'a') as main_file:
    for file_name in ['file1.txt', 'file2.txt', 'file3.txt']:
        with open(file_name) as file:
            for line in file:
                main_file.write(line)

以上代码中,'main_file.txt'是主文件名,['file1.txt', 'file2.txt', 'file3.txt']是要写入主文件的文件名列表。这里使用了'a'模式打开主文件,表示以追加模式打开文件,在文件末尾写入新的内容。

方法二:一次性读取

将所有文件的内容先读取到内存中,然后再写入主文件中。

data = []
for file_name in ['file1.txt', 'file2.txt', 'file3.txt']:
    with open(file_name) as file:
        data.extend(file.readlines())
        
with open('main_file.txt', 'w') as main_file:
    main_file.writelines(data)

以上代码中,data是保存所有文件内容的列表。使用extend()方法将每个文件的内容合并到data列表中。然后使用'w'模式打开主文件,表示以覆盖模式打开文件,在文件中写入新的内容。

方法三:使用cat命令

在Linux系统下,可以使用cat命令将多个文件合并成一个文件。Python可以通过调用系统命令的方式实现这一功能。

import subprocess

file_names = ['file1.txt', 'file2.txt', 'file3.txt']
subprocess.run(['cat'] + file_names, stdout=open('main_file.txt', 'w'))

以上代码中,file_names是要合并的文件名列表。使用subprocess.run()方法调用系统命令,执行cat命令,并将输出重定向到主文件中。

以上是三种将多个文件数据写入主文件的方法,根据实际情况选择最适合的方式。