python - 尝试更新文本文件记录并将它们写入输出文件
问题描述
我读取了一个输入文件,并尝试通过将日期中的一位数“日”值替换为两位数“日”值来重新格式化未完全形成的日期字段。起初似乎运行良好,然后我注意到输入文件有(279)条记录,但输出是用(615)条记录写入的。许多(如果不是全部)个位数的日期值已按预期替换,但这些记录的原始版本似乎也已写入输出。当然期望输出也有(239)条记录???(脚本运行没有抛出任何错误)。
replacements = {'/1':'/01', '9/':'09/', '7/':'07/'}
file2 = open(r"c:\users\liddvdp\desktop\IBC CAP OUT.txt", "w")
with open(r"c:\users\liddvdp\desktop\IBC CAP.txt", "r") as reader:
for line in reader:
for src, target in replacements.items():
line = line.replace(src, target)
file2.write(line)
解决方案
你应该写:
replacements = {'/1':'/01', '9/':'09/', '7/':'07/'}
file2 = open(r"c:\users\liddvdp\desktop\IBC CAP OUT.txt", "w")
with open(r"c:\users\liddvdp\desktop\IBC CAP.txt", "r") as reader:
for line in reader:
for src, target in replacements.items():
line = line.replace(src, target)
file2.write(line)
否则,您将每行编辑三次,并在输出文件中写入三次。
推荐阅读
- javascript - 找不到“AppModule”的 NgModule 元数据中的错误。和 webpack:编译失败
- tfs - TF401262:长文本字段 System.Description 的值超过了允许的最大长度 1048576
- xml - 如何根据 linq 中的条件从特定 Xelement 中获取值
- android - 如何以编程方式获取 Linux 应用程序组名称?
- activecollab - 发布到 /projects/:id/time-records 时出现 404 错误并显示空消息
- html - 如何使用 ng-class 为 HTML 标签添加 ID(选择器)
- python - 在 python 中从两个具有 X 和 Y 值的 CSV 文件创建单个 CSV
- python - 如何在nodejs中自动启动和停止python脚本?
- python-3.x - Apache Tika 服务器问题,无法读取 PDF 文件
- swift - 导入到 XCode 的 Collada (.dae) 文件显示没有纹理