首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试就地更新文本文件记录并将其写出到输出文件

尝试就地更新文本文件记录并将其写出到输出文件
EN

Stack Overflow用户
提问于 2020-11-08 03:10:59
回答 1查看 27关注 0票数 0

我读取了一个输入文件,并尝试通过将日期中的单位数'day‘值替换为两位数的'day’值来重新格式化未完全形成的日期字段。一开始似乎工作得很好,然后我注意到输入文件有(279)条记录,但输出却写有(615)条记录。许多(如果不是全部)个位数的日期值按预期进行了替换,但这些记录的原始版本似乎也被写到了输出中。当然,预期输出也会有(239)个记录?(脚本运行时不会抛出任何错误)。

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2020-11-08 03:47:22

你应该这样写:

代码语言:javascript
复制
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)

否则,您将每行编辑三次,并在输出文件中写入三次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64731432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档