Python批量读取文件名并按行保存

引言

在日常工作和学习中,我们经常需要处理大量的文本文件。其中一个常见的任务是批量读取文件名,并逐行保存文件的内容。Python作为一种简洁而强大的编程语言,提供了丰富的库和函数来实现这个任务。本文将介绍如何使用Python批量读取文件名,并按行保存文件的内容。

准备工作

在开始之前,我们需要先准备一些文件作为示例。在一个文件夹中创建多个文本文件,并为每个文件填写一些内容。这些文件将用于我们的示例代码。

代码示例

首先,我们需要导入osglob库,分别用于操作文件和获取文件名。

import os
import glob

接下来,我们定义一个函数read_file来读取文件内容。该函数接受一个文件路径作为参数,并返回文件的内容。

def read_file(file_path):
    with open(file_path, 'r') as f:
        content = f.readlines()
    return content

接着,我们使用glob库来获取文件名列表。glob库提供了一个函数glob.glob(),可以根据指定的模式匹配文件名。

file_list = glob.glob('path/to/files/*.txt')

然后,我们可以遍历文件名列表,并调用read_file函数读取文件内容。将每个文件的内容保存在一个列表中。

file_contents = []
for file_name in file_list:
    content = read_file(file_name)
    file_contents.append(content)

最后,我们可以将每个文件的内容写入到一个新的文件中。使用os库的os.path.basename()函数获取文件名,并将文件内容逐行写入新文件中。

output_file = 'path/to/output.txt'
with open(output_file, 'w') as f:
    for i, content in enumerate(file_contents):
        f.write(f"File: {os.path.basename(file_list[i])}\n")
        f.writelines(content)
        f.write('\n')

完整代码

import os
import glob

def read_file(file_path):
    with open(file_path, 'r') as f:
        content = f.readlines()
    return content

file_list = glob.glob('path/to/files/*.txt')

file_contents = []
for file_name in file_list:
    content = read_file(file_name)
    file_contents.append(content)

output_file = 'path/to/output.txt'
with open(output_file, 'w') as f:
    for i, content in enumerate(file_contents):
        f.write(f"File: {os.path.basename(file_list[i])}\n")
        f.writelines(content)
        f.write('\n')

流程图

下图是整个流程的简单流程图,用于更好地理解代码的执行过程。

flowchart TD
    Start --> GetFileList
    GetFileList --> ReadFiles
    ReadFiles --> WriteOutputFile
    WriteOutputFile --> End

总结

本文介绍了如何使用Python批量读取文件名,并按行保存文件的内容。首先,我们使用glob库获取文件名列表。然后,通过遍历文件名列表,调用read_file函数读取文件内容,并将每个文件的内容保存在一个列表中。最后,我们将每个文件的内容写入到一个新的文件中。

通过本文的代码示例和流程图,您应该能够理解如何使用Python来批量读取文件名,并按行保存文件的内容。这个过程可以帮助我们处理大量的文本文件,并提取我们感兴趣的信息。

希望本文对您有所帮助,谢谢阅读!