Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 写入文本文件时出现问题_Python_File_Text - Fatal编程技术网

Python 写入文本文件时出现问题

Python 写入文本文件时出现问题,python,file,text,Python,File,Text,我在用python将数据写入文本文件时遇到了一些问题。基本上,我要做的是读取文本文件中的信息,更新读取的文本,然后将更新的信息写回同一个文本文件。阅读和更新文本很容易,但是,当我尝试将更新后的文本写回文本文件时遇到了困难 文本文件非常基本,由三行组成。这是: 48850 z_merged_shapefiles EDRN_048850 我使用下面的代码尝试更新它,但出现了以下错误:“file”对象没有属性“writeline” 以下是我使用的代码: fo = open("C:\\Users\

我在用python将数据写入文本文件时遇到了一些问题。基本上,我要做的是读取文本文件中的信息,更新读取的文本,然后将更新的信息写回同一个文本文件。阅读和更新文本很容易,但是,当我尝试将更新后的文本写回文本文件时遇到了困难

文本文件非常基本,由三行组成。这是:

48850

z_merged_shapefiles

EDRN_048850
我使用下面的代码尝试更新它,但出现了以下错误:
“file”对象没有属性“writeline”

以下是我使用的代码:

fo = open("C:\\Users\\T0015685\\Documents\\Python\\Foo1.txt", "r")

read1 = fo.readline()
read2 = fo.readline()
read3 = fo.readline()

fo.close()

edrn_v = int(read1) + 1
newID = "EDRN_" + str(edrn_v)

fo = open("C:\\Users\\T0015685\\Documents\\Python\\Foo1.txt", "w")

fo.writeline(edrn_v)
fo.writeline(read2)
fo.writeline(newID)

虽然有一个
读线
,但没有模拟
写线

您可以使用
write
和附加
'\n'
来终止一行

with open("C:\\Users\\T0015685\\Documents\\Python\\Foo1.txt", "w") as fo:
    fo.write(edrn_v + '\n')
    fo.write(read2 + '\n')
    fo.write(newID + '\n')
或者将所有变量放入
列表中
并使用
写线

with open("C:\\Users\\T0015685\\Documents\\Python\\Foo1.txt", "w") as fo:
    fo.writelines([edrn_v, read2, newID])
注意

我正在使用这个声明

with open() as f:
因此,您不必自己管理
打开
关闭

f.open()
f.read()
f.close()

虽然有一个
读线
,但没有模拟
写线

您可以使用
write
和附加
'\n'
来终止一行

with open("C:\\Users\\T0015685\\Documents\\Python\\Foo1.txt", "w") as fo:
    fo.write(edrn_v + '\n')
    fo.write(read2 + '\n')
    fo.write(newID + '\n')
或者将所有变量放入
列表中
并使用
写线

with open("C:\\Users\\T0015685\\Documents\\Python\\Foo1.txt", "w") as fo:
    fo.writelines([edrn_v, read2, newID])
注意

我正在使用这个声明

with open() as f:
因此,您不必自己管理
打开
关闭

f.open()
f.read()
f.close()

谢谢,你的答案很有效。但有一个问题,它确实像我预期的那样读写,但在第3行上创建了一个空间,并将我预期的内容移动到第4行。你知道为什么会这样吗?我怎样才能阻止它?谢谢你,你的答案很有效。但有一个问题,它确实像我预期的那样读写,但在第3行上创建了一个空间,并将我预期的内容移动到第4行。你知道为什么会这样吗?我怎样才能阻止它?