【问题标题】:Is there a cleaner way to replace characters in a text file? [duplicate]有没有更简洁的方法来替换文本文件中的字符? [复制]
【发布时间】:2022-11-25 02:54:37
【问题描述】:

我正在尝试替换文本文件中的字符,代码有效,但似乎太长了。我想知道是否有其他方法可以做到这一点?

(这对我来说是学习更好的方法的好方法,而不仅仅是长时间的重复方法)

谢谢

with open('documento.txt', 'r') as file:
    filedata = file.read()

filedata = filedata.replace('+', 'e')
filedata = filedata.replace('P', 'a')
filedata = filedata.replace('B', 'o')
filedata = filedata.replace('N', 's')
filedata = filedata.replace('K', 'n')
filedata = filedata.replace('X', 'r')
filedata = filedata.replace('Q', 'i')
filedata = filedata.replace('T', 'l')
filedata = filedata.replace('*', 'd')
filedata = filedata.replace('Y', 'u')
filedata = filedata.replace('_', 'c')
filedata = filedata.replace('V', 't')
filedata = filedata.replace('H', 'm')
filedata = filedata.replace('D', 'q')
filedata = filedata.replace('M', 'h')
filedata = filedata.replace('R', 'j')

with open('documento.txt', 'w') as file:
    file.write(filedata)

【问题讨论】:

标签: python replace


【解决方案1】:

为了使这个过程更有效率,您可能需要考虑使用 for 循环和包含您要替换的内容和要替换为的内容的并行列表。在您的情况下,代码看起来像这样:

beforeList = ['+', 'P', 'B', 'N', 'K', 'X', 'Q', 'T', '*', 'Y', '_', 'V', 'H', 'D', 'M', 'R']
afterList = ['e', 'a', 'o', 's', 'n', 'r', 'i', 'l', 'd', 'u', 'c', 't', 'm', 'q', 'h', 'j']

with open('documento.txt', 'r') as file:
    filedata = file.read()

for i in range(len(beforeList)):
    filedata = filedata.replace(beforeList[i], afterList[i])

with open('documento.txt', 'w') as file:
    file.write(filedata)

因为要替换的字符与要替换的字符“平行”,所以它们的索引将匹配,从而允许 for 循环遍历每个原始字符并相应地替换它们。

【讨论】:

    猜你喜欢
    • 2013-08-22
    • 2020-12-18
    • 2021-11-12
    • 2020-04-16
    • 2010-09-19
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    相关资源
    最近更新 更多