我正在尝试了解我的read 函数发生了什么。我只是在对我在 canopy 中创建的文本文档执行 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
请您参考如下方法:
my_file.readline(3)从第一行开始读取最多 3 个字节。 第一行包含一个 w 和一个行尾字符。
如果您想读取前 3 个字节 而不管行,请使用 my_file.read(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() 返回一个包含 所有 行的列表 文件。因为如果文件很大,这可能会非常占用内存,并且因为它 通常可以逐行处理文件(这要少得多 内存密集型),通常前两种读取文件的方法是 优于第三种。
