如何在python中从左到右替换文本文件中的字符?

2024-05-15 01:43:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文本文件(*.txt),它的内容是"01110011",我想替换它:'00' ==> a'01' ==> b'10' ==> c'11' ==> d从左到右。因此内容变成'bdad'。 根据this post,我使用了下面的代码,但不幸的是,替换不是定向的(我的意思是它不是从左到右)。 我可以请你帮我吗

# Read in the file
with open('file.txt', 'r') as file :
  filedata = file.read()

# Replace the target string
filedata = filedata.replace('00', 'a')
filedata = filedata.replace('01', 'b')
filedata = filedata.replace('10', 'c')
filedata = filedata.replace('11', 'd')

# Write the file out again
with open('file.txt', 'w') as file:
  file.write(filedata)

Tags: the代码txt内容aswithopenthis
3条回答

这将有助于:

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

New_String = ""
for i in range(0, len(filedata), 2):
    if filedata[i:i+2] == "00" : New_String += "a"
    if filedata[i:i+2] == "01" : New_String += "b"
    if filedata[i:i+2] == "10" : New_String += "c"
    if filedata[i:i+2] == "11" : New_String += "d"

print(New_String)

只需构建一个新字符串,仅替换偶数索引处的2字符子字符串:

repl = {
    '00': 'a',
    '01': 'b',
    '10': 'c',
    '11': 'd',
}


filedata = ''.join(repl[filedata[i:i+2]] for i in range(0, len(filedata), 2))

省略文件处理,您可以执行以下操作:-

mystring = '01110011'
mymap = {'00': 'a', '01': 'b', '10': 'c', '11': 'd'}
newstring = ''
while len(mystring) >= 2:
    newstring += mymap[mystring[:2]]
    mystring = mystring[2:]
print(newstring)

相关问题 更多 >

    热门问题