python遍历txt文件的 5种方法

本文详细介绍了Python中读取文本文件的不同方法,包括直接遍历、read、readline和readlines,以及with open的使用,帮助理解如何按行或一次性处理文件内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#方法一:直接遍历法,按行读取,每行返回一个字符串类型

f1= open("C:/Users/Administrator/Desktop/qj_ly_product_list.txt",'r',encoding= 'UTF-8')
for i in f1:
    print(i,end = '')


#方法二::read法,如果指定了参数 size,就按照该指定长度从文件中读取内容.否则,可以一次读取文件的全部内容,
Python把内容读到内存,用一个str对象表示,被读出来的内容,全部塞到一个字符串里面。这样有好处,
就是东西都到内存里面了,随时取用;但如果文件内容太多了,内存会吃不消

f2=open("C:/Users/Administrator/Desktop/qj_ly_product_list.txt",'r',encoding= 'UTF-8')
for i in f2.read():
    print(i,end = '')     #其实是一个一个字符进行遍历的,每行结尾有一个换行符,所以进行了换行
print(type(f2.read()))
print(f2.read())

#方法三:readline法 :可选参数 size 的含义同上。它是以行为单位返回字符串,也就是每次只读一行,返回一个字符串类型
每一行都是一个字符串类型

f3 = open("C:/Users/Administrator/Desktop/qj_ly_product_list.txt",'r',encoding= 'UTF-8')
for i in range(10):
    print(type(f3.readline()))

#方法四:readlines法:一次性读取整个文本内容,返回的是一个列表

f4 = open("C:/Users/Administrator/Desktop/qj_ly_product_list.txt",'r',encoding= 'UTF-8')
for i in f4.readlines():
    print(i)

#方法五:with open法:会自动关闭文件.read,readline,readlines都必须手动关闭文件

with open("C:/Users/Administrator/Desktop/qj_ly_product_list.txt",'r',encoding= 'UTF-8')as f:
    for i in f:
        print(i,end = '')
————————————————
版权声明:本文为优快云博主「yuekangwei」的原创文章
原文链接:https://blog.youkuaiyun.com/yuekangwei/article/details/104446552

### 遍历TXT文件方法 当处理较小的文本文件时,可以使用`read()`方法读取整个文件的内容作为单个字符串[^1]。然而,对于较大的文件,为了提高内存效率,建议逐行读取文件。 #### 使用 `readline()` 方法逐行读取 此方法每次调用只读取一行数据: ```python file = open('example.txt', 'r') while True: line = file.readline() if not line: break print(line.strip()) file.close() ``` 这种方法适合于需要逐行处理大文件的情况,因为不会一次性加载全部内容到内存中。 #### 使用 `readlines()` 方法获取列表形式的所有行 该函数会返回一个包含每一行作为一个元素的列表: ```python with open('example.txt', 'r') as file: lines = file.readlines() for line in lines: print(line.strip()) ``` 这种方式简单易懂,但对于非常大的文件可能会占用较多内存,因为它把所有行都存储到了内存里[^2]。 #### 利用上下文管理器和迭代器模式优化代码结构 通过结合`with`语句以及直接在`for`循环内操作文件对象来简化语法并自动关闭资源: ```python import sys if len(sys.argv) > 1: filename = sys.argv[1] else: # 如果没有提供命令行参数,则默认从标准输入读取 filename = None if filename is not None: with open(filename, 'r') as f: for line in f: print(line.strip()) else: for line in sys.stdin: print(line.strip()) ``` 上述例子展示了如何优雅地处理来自命令行指定路径下的文件或是标准输入的数据流[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值