def main():
f = open('yahoo.txt', 'w')
f.write('yahoo\n')
f.write('google\n')
f.write('bing\n')
f.write('duckduck\n')
f.write('aol\n')
f.close()
f = open('yahoo.txt', 'r')
print('f.read ', f.read() )
print('f.read(5)', f.read(5)) # just 'f.read(4)' being printed
main()
在倒数第二行print('f.read(5)', f.read(5))
中,仅打印字符串'f.read(5)'
字符串,而对于其他打印参数则不打印任何内容。
我希望是
f.read(5) yahoo
感谢您的帮助。 谢谢
答案 0 :(得分:2)
调用f.read()后,它将读取整个文件,并将cursor
移动到文件末尾。如果要从头开始阅读,可以使用seek
函数。
def main():
f = open('yahoo.txt', 'w')
f.write('yahoo\n')
f.write('google\n')
f.write('bing\n')
f.write('duckduck\n')
f.write('aol\n')
f.close()
f = open('yahoo.txt', 'r')
print('f.read ', f.read() )
f.seek(0) # seek moves the cursor to the beginning of the file
print('f.read(5)', f.read(5)) # just 'f.read(4)' being printed
main()
答案 1 :(得分:1)
我建议您检查文档。第一个必须读取整个内容并将文件偏移量移动到文件末尾,因此第二次读取不会读取任何内容,因为它到达了文件末尾。
要读取文件的内容,请调用f.read(size),它会读取一定数量的数据并将其作为字符串返回。 size是一个可选的数字参数。 如果省略大小或为负数,则文件的全部内容将被读取并返回; 如果文件的大小是计算机内存的两倍,这将是您的问题。否则,最多读取并返回字节大小。如果已到达文件末尾,则f.read()将返回一个空字符串(“”)。“
您可以选中 seek 方法,将文件位置移至文件开头并再次读取。