def file_open(filename):
fo=open(filename,'r')
#fo.seek(5)
fo.read(3)
fo.close()
file_open("file_ro.py")我期望上面的程序从文件中返回前3个字节。但它不返回任何内容。当我在交互式python命令提示符中运行这些命令时,我得到了预期的输出!
发布于 2010-07-09 16:41:20
当您自己的答案打印读取的字节时,它不会返回这些字节,因此您无法在其他地方使用结果。此外,还有其他一些改进的空间:
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")发布于 2010-07-09 16:35:14
fo.read()返回已读取的数据,并且您从未将其赋值给任何对象。你说的是“输出”,但是你的代码不应该输出任何东西。您是否正在尝试打印这三个字节?在这种情况下,您要查找的内容如下
f = open('file_ro.py', 'r')
print f.read(3)您将在交互式提示符中得到“预期输出”,因为如果没有赋值给任何地方(如果不是None?),它就会像fo.read(3)行一样打印求值结果。或者其他类似的东西,也许有人能解释得更好。
发布于 2010-07-09 16:31:14
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")https://stackoverflow.com/questions/3211031
复制相似问题