Regex 替换文件中的字符串和正则表达式

Regex 替换文件中的字符串和正则表达式,regex,python-3.x,replace,Regex,Python 3.x,Replace,这是我的第一个问题,我对Python还很陌生 尽管如此,我还是尝试了一些不同的方法 我有一个文件(test.txt),其中包含一些如下组织的文本: name="NAME-ABC" NewName="GOOD MORNING" name="NAME-123456" NewName="

这是我的第一个问题,我对Python还很陌生

尽管如此,我还是尝试了一些不同的方法

我有一个文件(test.txt),其中包含一些如下组织的文本:

name="NAME-ABC"                                                         NewName="GOOD MORNING"
name="NAME-123456"                                                      NewName="HELLO"
name="NAME-3"                                                           NewName="ALLO"
"NAME-ABC"                                                      NewName="GOOD MORNING",
"NAME-123456"                                               NewName="HELLO",
"NAME-3"                                                        NewName="ALLO"
我试图获得的输出是一个包含以前值的字典,例如:

{"NAME-ABC":"GOOD MORNING","NAME-123456":"HELLO","NAME-3":"ALLO"}
使用一个小字典(在下面的示例中是“d”),我成功地删除了first name=部分,并用逗号替换了结束行,但是中间部分(包含不一致的空格和制表符数+NewName=)我无法处理它

到目前为止,我的代码是:

d =    {
  "name=": "",
  "\n": ","}


for x in range(len(d)):

    with open("test.txt") as f:
        newText=f.read().replace(list(d.items())[x][0], list(d.items())[x][1])

    with open("test.txt", "w") as f:
        f.write(newText)
这给了我一个text.txt文件,如下所示:

name="NAME-ABC"                                                         NewName="GOOD MORNING"
name="NAME-123456"                                                      NewName="HELLO"
name="NAME-3"                                                           NewName="ALLO"
"NAME-ABC"                                                      NewName="GOOD MORNING",
"NAME-123456"                                               NewName="HELLO",
"NAME-3"                                                        NewName="ALLO"
但是如果我把

d =    {
      "name=": "",
      "\n": ",",
       re.compile(r'\s*NewName='): ":"}
我得到以下错误

TypeError:replace()参数1必须是str,而不是re.Pattern

然后我尝试使用re.sub来处理regex,但现在,它什么都不做(程序运行,但文件中没有修改):

提前感谢您使用Regex提供的帮助

Ex:

import re

res = {}
with open(filename) as infile:
    for line in infile:                                   #Iterate Each line
        k, v = re.findall(r'=\"(.*?)\"', line.strip())    #Get Key-Value --> Get string in Quotes
        res[k] = v                                        #Form output
print(res)