在python中修改.txt文件中的一行
因此,我试图修改文本文件中符合条件的多行。 该行将以“Section”开头,然后我将对该行进行一些修改,然后我想用新行替换旧行。目前,我的代码看起来像这一行,但我得到以下错误“AttributeError:'str'对象没有属性'write'”在python中修改.txt文件中的一行,python,str-replace,findandmodify,Python,Str Replace,Findandmodify,因此,我试图修改文本文件中符合条件的多行。 该行将以“Section”开头,然后我将对该行进行一些修改,然后我想用新行替换旧行。目前,我的代码看起来像这一行,但我得到以下错误“AttributeError:'str'对象没有属性'write'” for f in glob.glob('*.svp'): print(f) with open(f,'r+') as ins: fileArray = [] for line in ins:
for f in glob.glob('*.svp'):
print(f)
with open(f,'r+') as ins:
fileArray = []
for line in ins:
fileArray.append(line)
if "Section" in line:
lat = line[26:35]
lineToKeep = line[:33] #Portion of line without lat.## lon, what will be amended
latAmended = round(float(lat[7:])*0.6)
latAmended = str(latAmended).zfill(2)
lon = line[36:46]
lonToKeep = lon[:-2]
lonAmended = round(float(lon[8:])*0.6)
lonAmended = str(lonAmended).zfill(2)
goodStuff = lineToKeep + latAmended + ' '+ lonToKeep + lonAmended
line = goodStuff
f.write(line)
请注意,您使用的是文件路径“f”(一个“str”对象),而不是文件对象“ins”本身。更改最后一行的变量可以达到以下目的:
for f in glob.glob('*.svp'):
print(f)
with open(f,'r+') as ins:
fileArray = []
for line in ins:
fileArray.append(line)
if "Section" in line:
lat = line[26:35]
lineToKeep = line[:33] #Portion of line without lat.## lon, what will be amended
latAmended = round(float(lat[7:])*0.6)
latAmended = str(latAmended).zfill(2)
lon = line[36:46]
lonToKeep = lon[:-2]
lonAmended = round(float(lon[8:])*0.6)
lonAmended = str(lonAmended).zfill(2)
goodStuff = lineToKeep + latAmended + ' '+ lonToKeep + lonAmended
line = goodStuff
f.write(line)
ins.write(line)
变量名和函数名应遵循带有下划线的
小写形式。