python - 不理解 Python 中的读取命令

标签 python

我正在尝试了解我的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() 返回一个包含 所有 行的列表 文件。因为如果文件很大,这可能会非常占用内存,并且因为它 通常可以逐行处理文件(这要少得多 内存密集型),通常前两种读取文件的方法是 优于第三种。

关于python - 不理解 Python 中的读取命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31416783/

相关文章:

python - Pygame 帮助;鼠标.get_pos()

python - gearman - 不断出现类型错误

python - 我想开发一个使用 gcc 编译和运行 c 程序的 python 脚本

python - 在并行程序中播种随机数生成器

python - 为什么我不断收到此错误 'RuntimeWarning: overflow encountered in int_scalars'

python - 使用 Python 可变长度整数取消设置标志中的单个位是否安全?

python - 是否可以更改 Kivy 应用程序任务栏图标?

python - 如何让用户在预定义的点暂停 python 脚本?

python - 如何定位字幕?

Python:msg.get_payload() 丢弃所需的数据,需要解决方案