假设有两个文本文件file1.txt和file2.txt,编写程序merge.py,把两个文本文件中的内容合并到新文件result.txt中,要求文件file1.txt和file2.txt中的行在result.txt中交替出现。也就是说,result.txt文件中的奇数行来自file1.txt,而偶数行来自file2.txt。如果俩个文件行数不一样,那么处理完行数较少的文件之后,把另一个文件中剩余的所有行直接追加到result.txt中。
时间: 2023-11-27 09:55:29 浏览: 149
可以使用Python的文件操作来实现文本文件的合并。以下是一个可能的实现方式,代码中使用了try-except语句来处理文件打开关闭的异常情况。
```python
with open('file1.txt', 'r') as f1, open('file2.txt', 'r') as f2, open('result.txt', 'w') as f3:
lines1 = f1.readlines()
lines2 = f2.readlines()
for i in range(max(len(lines1), len(lines2))):
try:
f3.write(lines1[i].strip() + '\n')
except IndexError:
pass
try:
f3.write(lines2[i].strip() + '\n')
except IndexError:
pass
```
解释一下代码:
- `with` 语句用于打开文件,并在处理完成后自动关闭文件,避免了手动关闭文件时可能出现的异常情况。
- `readlines()` 方法可以读取文本文件的所有行,返回一个字符串列表。
- `strip()` 方法可以去除字符串两端的空白字符,包括换行符。
- `range()` 函数用于生成一个整数序列,其参数是序列的最大值(不包括最大值本身)。这里使用了 `max()` 函数来确定循环次数,以保证两个文件较短的那个文件在处理完之后,能把较长的那个文件中剩余的所有行直接追加到 `result.txt` 文件中。
- `try-except` 语句用于处理文件行数不一致的情况。如果 `IndexError` 异常被抛出,则说明已经处理完了较短的文件,此时直接忽略该异常即可。
希望这个例子能够对你有所帮助。
阅读全文