python - 连接两行或多行,而不会在最后一行出现重复
问题描述
如果它们不以 0000 开头,我想连接两行或多行,并将这些行放在以 00000 开头的行并添加 |。这是我正在使用的代码,它工作正常,但我得到了最后一行,一些值的重复,但只是最后一个。谁能帮我?
with open('TodasPGDAS.txt', 'r+', encoding="utf-8") as file:
text = str();
for line in file:
if line[0:5] == "00000":
text = text + '\n'
text = text + '|' + line.strip()
file.seek(0)
file.write(text)
解决方案
这是一个简单方便的重构,它使用fileinput
模块的inplace
模式来替换文件的内容。
import fileinput
for file in fileinput.input(['TodasPGDAS.txt'], inplace=True):
accumulated = []
for line in file:
if line.startswith("00000") and accumulated:
print('|'.join(accumulated))
accumulated = []
accumulated.append(line.strip())
if accumulated:
print('|'.join(accumulated))
这也将逻辑重构为仅在字段|
之间添加。我猜这就是你真正想要的;如果没有,也许您可以通过简单的示例输入和预期输出来澄清您的问题。
Python 3 中的默认编码在任何健全的平台上都应该是 UTF-8。
推荐阅读
- python - 不确定对 in list2=i[:4] Python 3++ 的理解
- javascript - setState 的顺序
- reactjs - Redux Offline 问题,将reducer 重新水化为null
- java - 问题:我想在运行 mvn eclipse:clean 时从我的 maven 项目中删除目录
- php - laravel 5.5 Auth::attempt login 在本地服务器上工作但在实时服务器上不工作
- arrays - 在对角线上垂直堆叠 5 个二维数组以构建一个完整的二维数组
- android - androidTest 文件夹和 apk 未为产品风味 android 仪器测试创建
- python - Django:在抽象模型中包含 get_absolute_url()?
- python - 如何遍历 JSON 项和 JSON 子项
- grails - Grails test-app 失败,而 test-app 单独的联合测试工作