def main():
f = open('yahoo.txt', 'w')
f.write('yahoon')
f.write('googlen')
f.write('bingn')
f.write('duckduckn')
f.write('aoln')
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
任何帮助不胜感激。 谢谢
调用 f.read(( 后,它会读取整个文件,将cursor
移动到文件的末尾。如果您想重新开始阅读,可以使用seek
功能。
def main():
f = open('yahoo.txt', 'w')
f.write('yahoon')
f.write('googlen')
f.write('bingn')
f.write('duckduckn')
f.write('aoln')
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()
我建议您检查文档。第一次读取必须读取整个内容并将文件偏移量移动到文件末尾,因此第二次读取不会读取任何内容,因为它到达文件末尾。
要读取文件的内容,请调用 f.read(size(,它会读取一定数量的数据并将其作为字符串返回。 size 是一个可选的数字参数。当省略大小或负数时,将读取并返回文件的全部内容;如果文件是计算机内存的两倍,则会出现您的问题。否则,最多读取和返回大小的字节。如果已到达文件的末尾,f.read(( 将返回一个空字符串 ("("。
您可以检查查找方法将文件位置移动到文件的开头并再次读取。
https://docs.python.org/2/tutorial/inputoutput.html