不能在循环中给字符串赋值


import re
import os
path ="/data/notebook_files/"
Filelist = []
txt = ''
for home, dirs, files in os.walk(path):
for filename in files:
Filelist.append(os.path.join(home, filename))
for file in Filelist:
with open(file,"r+",encoding='utf-8',errors='ignore') as f:
print (file)
for line in f: 
old_str = re.findall(r'd+', line)
for i in range(0,len(old_str)):
line = line.replace(old_str[i],"n"+"###### v"+old_str[i],1)
txt = line
print (txt)

import re
import os
path ="/data/notebook_files/"
Filelist = []
txt = ''
for home, dirs, files in os.walk(path):
for filename in files:
Filelist.append(os.path.join(home, filename))
for file in Filelist:
with open(file,"r+",encoding='utf-8',errors='ignore') as f:
print (file)
for line in f: 
old_str = re.findall(r'd+', line)
for i in range(0,len(old_str)):
line = line.replace(old_str[i],"n"+"###### v"+old_str[i],1)
txt = line
print(txt)

我将在文本中的所有数字之前添加#######,所以我只需要最后一个数字的结果,即所有数字被替换后的结果。然后赋值给txt。但是文本不会被打印出来或写入文件。

在第一个代码中,txt不打印,但在第二个代码中,它打印我想要的内容。我的问题是如何在这个循环之外继续调用txt的内容。

我想知道这是怎么引起的?这真让我烦恼。

import re
import os
import codecs
path ="/data/notebook_files/bible"
Filelist = []
for home, dirs, files in os.walk(path):
for filename in files:
if str(filename)[len(str(filename))-3:] != '.py':
Filelist.append(os.path.join(home, filename))
for file in Filelist:
with codecs.open(file,"r+",encoding='utf-8') as f:
txt = ''
for line in f: 
#print (file)
old_str = re.findall(r'd+', line)
for i in range(0,len(old_str)):
line = line.replace(old_str[i],"n"+"###### v"+old_str[i],1).strip()
txt += line

txt,然后在循环内打开文件,以便每次txt被分配空字符串。然后在循环外打开文件代码,这样所有的数据都在txt内。

txt += line

允许添加txt的内容。

最新更新