Skip to main content
 首页 » 编程设计

python之错误文本替换代码 :

2025年05月04日20java哥

我似乎无法弄清楚为什么我总是收到这个错误的输出。

输入文件:

ff1 
ff2 
ff3 
ff10 
ff11 
ff20 
ff21 
ff23 
gb20 
gb10 
gh23 

输出文件:

FF01 
FF02 
FF03 
FF010 
FF011 
FF020 
FF021 
FF023 
GB020 
GB010 
GH023 

代码:

import os 
import sys 
 
#directory is the directory we will work from 
directory = "C:\\Users\\user\\Desktop" 
os.chdir(directory) 
 
renameWhat = ["ff", "gb", "gh"] 
 
oldFile = open("New Text Document.txt") 
buffer = oldFile.read() 
 
for item in renameWhat: 
    for i in range(0, 50): 
        if i < 10: 
            buffer = buffer.replace(item + str(i), item.upper() + "0" + str(i)) 
        else: 
            buffer = buffer.replace(item + str(i), item.upper() + str(i)) 
 
outFile = open("test.txt", "w") 
outFile.write(buffer) 
outFile.close() 
oldFile.close() 

需要发生什么:

我正在尝试将 ff 替换为大写字母(已完成),然后我需要为所有小于或等于 9 的数字添加零。所以我认为 if i is less than 10 应该足够好了;但这并不是因为它向超过 9 的所有内容添加零。我尝试使用 len(str(i)) 来确保它的长度仅为 1,但这仍然不起作用;我错过了什么?

请您参考如下方法:

您的原始解决方案不起作用的原因是它没有检查它是否匹配整行/单词/数字。因此,例如在将 ff1 替换为 FF01 之后,您的缓冲区现在是:

FF01 
ff2 
ff3 
FF010 
FF011 
ff20 
ff21 
ff23 
gb20 
gb10 
gh23