我试图了解我的read
功能正在发生什么。我只是做了一个readline
我在树冠上创建的文本文档。出于某种原因,它只给了我w
无论我投入的任何价值。我是Python新世界的新手,所以我确信这是一个简单的答案!谢谢你的帮助!
import os
my_file = open(os.path.expanduser("~/Desktop/Python Files/Test Text.txt"),'r')
print my_file.readline(3)
my_file.close()
我的文字文件位于
之下w
o
r
d
s
答案 0 :(得分:5)
my_file.readline(3)
从第一行读取最多 3个字节。
第一行包含w
和行尾字符。
如果您想要读取前3个字节而不考虑该行,请使用my_file.read(3)
。请注意,行尾字符包含在计数中。
如果要打印前3行,可以使用
import os
with open(os.path.expanduser("~/Desktop/Python Files/Test Text.txt"),'r') as my_file:
for i, line in enumerate(my_file):
if i >= 3: break
print(line)
或
import itertools as IT
with open(os.path.expanduser("~/Desktop/Python Files/Test Text.txt"),'r') as my_file:
for line in IT.islice(my_file, 3):
print(line)
对于短文件,您可以使用
with open(os.path.expanduser("~/Desktop/Python Files/Test Text.txt"),'r') as my_file:
lines = my_file.readlines()
for line in lines[:3]:
print(line)
但请注意my_file.readlines()
会返回所有中的行列表
文件。因为如果文件很大,并且因为它,这可能是非常占用大量内存的
通常可以逐行处理文件(这远远不够
内存密集型),一般是前两种读取文件的方法
优先于第三。
答案 1 :(得分:1)
'readline([size]) - >文件的下一行,作为字符串。返回换行符。非负大小参数限制要返回的最大字节数(然后可以返回不完整的行)。在EOF返回一个空字符串。
readline
读取下一行,依此类推。参数size
表示它应该从相应的行读取多少字节。
答案 2 :(得分:0)
使用f.readline
不会随机访问该文件。我想你想读第三个(或者如果你是零索引的话,可能是第四个)。您传递给f.readline
的参数是要读取的最大字节数,而不是要读取的特定行。