有三个格式相同但内容不同的文件:data1.txt、data2.txt、data3.txt,其格式为一行表头和多行数据,现列举data1.txt文件的前三行如下: 职工号,姓名,部门,电子邮箱,电话号码,身份证号码 10932,张珊,管理,zhans@163.com,18612345678,520125197907167551 10933,李思,软件,lisi@163.com,18612345679,510110195512176250 10934,王武,财务,wangwu@example.com,18612345680,510102196510255826 请编程把这三个文件按顺序合并为一个新文件data.txt,它具有相同的格式,即一行表头和多行数据,且按职工号排序。然后,读出并原样打印该文件的所有内容。三个数据文件会在超星资料中提供下载。 提示:题目较简单,如使用readlines、writelines等即可完成。唯一要注意的是各文件最后一行可能不是以回车结束。 输入样例: 无 输出结果: 略
时间: 2024-04-04 18:34:44 浏览: 142
以下是一个可能的解法,使用Python的文件操作和排序功能:
```python
# 读取三个文件的内容并合并
content = []
for i in range(1, 4):
with open('data{}.txt'.format(i), 'r') as f:
content += f.readlines()[1:] # 跳过表头,合并所有数据行
# 按职工号排序
content.sort(key=lambda line: int(line.split(',')[0]))
# 将排序后的内容写入新文件
with open('data.txt', 'w') as f:
f.write('职工号,姓名,部门,电子邮箱,电话号码,身份证号码\n')
f.writelines(content)
# 读取并打印新文件内容
with open('data.txt', 'r') as f:
print(f.read())
```
解释一下代码:
首先使用一个循环读取三个文件的内容并合并到一个`content`列表中,其中`readlines()`函数读取所有行,然后使用切片操作符`[1:]`跳过表头,只合并数据行。然后使用`sort()`函数按职工号排序,其中`key`参数指定按每行第一个逗号前面的职工号排序。最后使用`writelines()`函数将排序后的内容写入新文件,并在第一行写入表头。最后使用`read()`函数读取新文件内容并打印。
需要注意的是,文件的最后一行可能不是以回车结束,因此在读取和写入文件时最好使用`readlines()`和`writelines()`函数分别读取和写入每行内容,而不是使用`read()`和`write()`函数读取和写入整个文件的内容。
阅读全文