我似乎无法弄清楚为什么我总是收到这个错误的输出。
输入文件:
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
