本文章介绍了如何使用Python语言编写脚本来高效地合并多个文本文件。通过简单示例代码展示读取、处理和输出过程,帮助初学者掌握基础编程技巧。
在Python编程中合并文本段落件是一项常见的任务,在数据处理和日志管理中有广泛应用。这里我们将深入探讨如何使用Python实现两个包含特定信息的文本段落件合并,并结合提供的示例代码进行解释。
首先,我们有`employee.txt` 文件记录了工号和姓名:
```
100 Jason Smith
200 John Doe
300 Sanjay Gupta
400 Ashok Sharma
```
接着是 `bonus.txt` 文件,它包含了与员工对应的工号及工资信息:
```
100 $5,000
200 $500
300 $3,000
400 $1,250
```
我们的目标是从这两个文件中提取数据,并按照特定格式输出,同时根据员工姓名进行排序。
第一段代码如下:
```python
fp01 = open(bonus.txt, r)
a = []
for line01 in fp01:
a.append(line01)
fp02 = open(employee.txt, r)
fc02 = sorted(fp02, key=lambda x: x.split()[1].lower()) # 按照员工姓名排序
for line02 in fc02:
i = 0
while line02.split()[0] != a[i].split()[0]:
i += 1
print(f{line02.split()[0]} {line02.split()[1].strip().lower()} {a[i].split()[1]})
fp01.close()
fp02.close()
```
此代码首先打开 `bonus.txt` 文件,并将每一行存储在列表 `a` 中。然后,它按员工姓名对 `employee.txt` 的内容进行排序(这里使用了字符串的 `.lower()` 方法以确保比较时忽略大小写)。接下来遍历排序后的文件,找到与 `bonus.txt` 工号匹配的信息并输出合并结果。
第二段代码提供了一个更通用的方法来合并多个文本段落件,并且加入了错误处理机制:
```python
def join(in_filenames, out_filename):
try:
with open(out_filename, w+) as out_file: # 使用with语句自动管理文件的打开与关闭
err_files = []
for file in in_filenames:
try:
with open(file, r) as infile:
content = infile.read()
if content != :
out_file.write(content)
out_file.write(\n\n)
except IOError:
print(fError joining {file})
err_files.append(file)
print(Joining completed. {} file(s) missed..format(len(err_files)))
print(Output file:, out_filename)
finally: # 确保即使发生错误,文件也会被正确关闭
if len(err_files) > 0:
print(\nMissed files:)
for f in err_files:
print(f)
if __name__ == __main__:
join([employee.txt, bonus.txt], merged_output.txt) # 示例调用函数合并两个文件,输出到名为merged_output.txt的文件中。
```
这个 `join` 函数首先打开一个指定的输出文件,并尝试从每个输入文件读取内容。如果成功,则将这些内容写入输出文件;若发生错误(如IOError),则记录并继续处理其他文件。
这两段代码展示了Python在合并文本时的不同方法,可以依据具体需求选择适用的方法或适当修改以满足特定的应用场景。