def file_open(filename):
fo=open(filename,'r')
#fo.seek(5)
fo.read(3)
fo.close()
file_open("file_ro.py")
我期望上面的程序返回文件的前3個字節。但它什麼都沒有返回。當我在交互式python命令提示符下運行這些命令時 - 我得到預期的輸出結果python文件讀取
def file_open(filename):
fo=open(filename,'r')
#fo.seek(5)
fo.read(3)
fo.close()
file_open("file_ro.py")
我期望上面的程序返回文件的前3個字節。但它什麼都沒有返回。當我在交互式python命令提示符下運行這些命令時 - 我得到預期的輸出結果python文件讀取
雖然自己的答案打印字節讀取,它不回報他們,所以你不能在其他地方使用的結果。此外,還有餘地其他一些改進:
file_open
不是功能的好名字,因爲它可以讀取和文件,而不是隻打開它返回字節。fo.read(3)
失敗,也應該確保關閉文件。您可以使用the with statement來解決此問題。修改後的代碼可能是這個樣子:
def read_first_bytes(filename):
with open(filename,'r') as f:
return f.read(3)
用法:
>>> print read_first_bytes("file.py")
+ 1用於指出'用'語句 – 2010-07-09 08:47:55
for python2.5你可以'從__future__ import with_statement' – 2010-07-09 09:03:03
import sys
def file_open(filename):
fo=open(filename,'r')
#fo.seek(5)
read_data=fo.read(3)
fo.close()
print read_data
file_open("file.py")
回報的read_data會更好 – 2010-07-09 08:32:26
謝謝...它會添加它 – 2010-07-09 09:47:15
fo.read()
回報被讀取,你永遠不將其分配給任何數據。你正在談論'輸出',但你的代碼不應該輸出任何東西。你想要打印這三個字節嗎?在這種情況下,你正在尋找的東西像
f = open('file_ro.py', 'r')
print f.read(3)
你得到在互動提示「預期輸出」,因爲它打印如果它不被任何指定的評估結果(如果它不是None
?),就像在fo.read(3)
一行。或者沿着這些方向,或許有人可以更好地解釋它。
我得到了answer..need存儲它的變量.. – 2010-07-09 08:31:45