python合并文本文件示例代码。 python实现两个文本合并 employee文件中记录了工号和姓名 cat employee.txt: 100 Jason Smith 200 John Doe 300 Sanjay Gupta 400 Ashok Sharma bonus文件中记录工号和工资 cat bonus.txt: 100 $5,000 200 $500 300 $3,000 400 $1,250 要求把两个文件合并并输出如下, 处理结果: 400 ashok sharma $1,250 100 jason smith $5,000 200 john doe $5 在Python编程中,合并文本文件是一项常见的任务,特别是在数据处理和日志管理中。这里我们将深入探讨如何使用Python实现文本文件的合并,并结合提供的示例代码进行解释。 让我们看一下第一段代码,它用于合并两个包含特定信息的文本文件。`employee.txt` 文件包含了员工的工号和姓名,而 `bonus.txt` 文件则记录了对应的工号和薪水。代码的目的是将这两个文件的内容合并成一个新的格式,同时根据员工的姓名进行排序。 ```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]) for line02 in fc02: i = 0 while line02.split()[0] != a[i].split()[0]: i += 1 print(f"{line02.split()[0]} {line02.split()[1]} {line02.split()[2]} {a[i].split()[1]}") fp01.close() fp02.close() ``` 这段代码首先打开 `bonus.txt` 文件并将每一行存储到列表 `a` 中。然后,它打开 `employee.txt` 文件并按姓名对每一行进行排序。接下来,代码遍历排序后的 `employee.txt` 文件,找到与 `bonus.txt` 中工号匹配的行,并输出合并后的格式。 第二段代码是一个更通用的文件合并函数,它可以处理多个输入文件并合并到一个输出文件中。这段代码由GreatGhoul编写,并且具有错误处理功能,能够处理合并过程中可能出现的IO异常。 ```python def join(in_filenames, out_filename): out_file = open(out_filename, 'w+') err_files = [] for file in in_filenames: try: in_file = open(file, 'r') out_file.write(in_file.read()) out_file.write('\n\n') in_file.close() except IOError: print(f'error joining {file}') err_files.append(file) out_file.close() print('joining completed. {} file(s) missed.'.format(len(err_files))) print('output file:', out_filename) if len(err_files) > 0: print('missed files:') print('--------------------------------') for file in err_files: print(file) print('--------------------------------') if __name__ == '__main__': # ... main logic ... ``` 这个 `join` 函数接受一个文件名列表(`in_filenames`)和一个输出文件名(`out_filename`)。它逐个打开输入文件,将内容写入输出文件,并在每个文件之间添加两行空格作为分隔。如果在打开或读取文件时发生IO错误,它会捕获异常,将出错的文件添加到 `err_files` 列表,并在程序结束时报告这些错误。 在 `__main__` 块中,代码会扫描当前目录下的所有 `.txt` 文件,将它们作为输入文件传递给 `join` 函数。用户还可以通过输入指定书籍名称来创建合并后的文件。 这两段代码都展示了Python处理文本文件合并的不同方法。在实际应用中,根据具体需求,你可以选择适合的代码结构或进行适当的修改。例如,如果你需要合并大量文件,可能需要考虑使用生成器或者缓冲机制以降低内存消耗。此外,还可以通过使用`pandas`库等数据分析工具,使合并过程更加高效和灵活。
- 粉丝: 5
- 资源: 957
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论10