我有一个文本文件,上面有日期、姓名和地址,比如: 190524 David Bakerstreet 190515 Peter Hollandstreet等
我想用{“准确地”和“:准确地”处理日期,使之适合词典。我尝试了以下方法,但它将file.txt中的每个日期都替换为循环中的最新日期,而不是一次更改一个,因此file.txt中的每个日期都变为相同的日期。我该怎么做
file = open(file.txt)
FILE = file.read()
a = re.compile(r"\d\d\d\d\d\d") # To find dates like 190213
b = re.findall(a, FILE) # Finding all the dates and put them in a list
for k in b:
for q in FILE.split():
if k in q:
c = a.sub("{\""+k+"\":", FILE)
print(c)
结果:{“190515:”大卫贝克街{“190515”:彼得霍兰街等
我想要的结果:{“190524:”大卫贝克街{“190515”:彼得霍兰街等
您可以使用替换中的
\1
标记来引用匹配字符串的一部分首先,捕获与组匹配的6个数字。使用此正则表达式:
对于替换字符串,只需使用
"{\"\\1\":"
,而不是"{\"" + k + "\":"
实际上你也不需要那么多for循环。假设输入文件很小,我认为不需要任何for循环
如果您的输入文件很大,那么您可能需要一点一点地读取它,而不是一次读取整个文件
相关问题 更多 >
编程相关推荐