python命令行文件处理不起作用?我工作正常吗?
我是一个新的Python学习者,现在我已经进入文件处理。python命令行文件处理不起作用?我工作正常吗?
我试过解决我的问题,但失败了,所以张贴我的问题。重复之前请考虑我的问题。
我试图创建一个文件,它的工作。在文件中写入 也起作用。
但是当我试图读取文件中的文本或值时,它将返回空白。
我使用命令行终端来使用python并在Ubuntu OS中运行。
我试过的代码如下。该文件在所需位置创建,并且书面文本也存在。
f0=open("filehandling.txt","wb")
f0.write("my second attempt")
s=f0.read(10);
print s
我也试过用wb +,r +。但它只是返回为空
编辑1:
我附上了下面的代码。我在命令行
fo = open("samp.txt", "wb")
fo.write("Text is here\n");
fo.close()
fo = open("samp.txt", "r+")
str = fo.read(10);
print "Read String is : ", str
fo.close()
首先,进入一个接一个,如果你open
与wb
标志那么该文件将只在写入的模式。如果你想读写,那么你需要wb+
标志。如果您不希望每次都截断文件,则需要rb+
。
现在文件是指向文件内某个位置的指针的流。如果你写
f0.write("my second attempt")
然后在[pointer before writing]
指针点(在你的情况下,该文件的开头,即0
)加[length of written bytes]
(你的情况17
,这是文件的末尾)。为了读取整个文件,您必须将该指针移回开头,然后再读取:
f0.seek(0)
data = f0.read()
我也试过用r +创建对不起,我忘了提及它 –
问题是编辑@freakish –
@anandmbs你读过我的答案,直到最后?由于您从文件末尾读取,它将返回空白。你需要'f0.seek(0)'。 – freakish
适用于我(在Python 3上)当我不以二进制模式打开文件('fo = open (“samp.txt”,“w”)')。应该像Python 2一样工作。 – Matthias