Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中修改.txt文件中的一行_Python_Str Replace_Findandmodify - Fatal编程技术网

在python中修改.txt文件中的一行

在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:

因此,我试图修改文本文件中符合条件的多行。 该行将以“Section”开头,然后我将对该行进行一些修改,然后我想用新行替换旧行。目前,我的代码看起来像这一行,但我得到以下错误“AttributeError:'str'对象没有属性'write'”

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)

变量名和函数名应遵循带有下划线的
小写形式。