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() 
+0

适用于我(在Python 3上)当我不以二进制模式打开文件('fo = open (“samp.txt”,“w”)')。应该像Python 2一样工作。 – Matthias

首先,进入一个接一个,如果你openwb标志那么该文件将只在写入的模式。如果你想读写,那么你需要wb+标志。如果您不希望每次都截断文件,则需要rb+

现在文件是指向文件内某个位置的指针的流。如果你写

f0.write("my second attempt") 

然后在[pointer before writing]指针点(在你的情况下,该文件的开头,即0)加[length of written bytes](你的情况17,这是文件的末尾)。为了读取整个文件,您必须将该指针移回开头,然后再读取:

f0.seek(0) 
data = f0.read() 
+0

我也试过用r +创建对不起,我忘了提及它 –

+0

问题是编辑@freakish –

+0

@anandmbs你读过我的答案,直到最后?由于您从文件末尾读取,它将返回空白。你需要'f0.seek(0)'。 – freakish