Python批量读取文件名并按行保存
引言
在日常工作和学习中,我们经常需要处理大量的文本文件。其中一个常见的任务是批量读取文件名,并逐行保存文件的内容。Python作为一种简洁而强大的编程语言,提供了丰富的库和函数来实现这个任务。本文将介绍如何使用Python批量读取文件名,并按行保存文件的内容。
准备工作
在开始之前,我们需要先准备一些文件作为示例。在一个文件夹中创建多个文本文件,并为每个文件填写一些内容。这些文件将用于我们的示例代码。
代码示例
首先,我们需要导入os
和glob
库,分别用于操作文件和获取文件名。
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来批量读取文件名,并按行保存文件的内容。这个过程可以帮助我们处理大量的文本文件,并提取我们感兴趣的信息。
希望本文对您有所帮助,谢谢阅读!