Python流式读取文件|Python按行读取文件

博客介绍了以只读方式使用UTF-8编码方案读取tree.txt文件的方法。一是循环读取所有行,二是先读取一行,再循环读取下面所有行,读完后关闭文件。

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

如以只读方式使用UTF-8编码方案读取tree.txt,并在读完之后关闭文件。
方法一:循环读取所有行

with open('tree.txt', 'r', encoding='utf-8') as f:
    for line in f:
        print(line)
    f.close()

方法二:先读取一行,再接着循环读取下面的所有行

with open('tree.txt', 'r', encoding='utf-8') as f:
	line = f.readline()
	print(line)
	while(line):
		line = f.readline()
		print(line)
	f.close()
### 使用 Python `requests` 实现文件流式上传 当需要通过 HTTP 协议以流式方式上传大文件时,可以借助 `requests` 店铺中的工具模块 `requests_toolbelt` 来完成此操作。以下是具体方法: #### 安装依赖 为了支持流式上传功能,需安装额外的库 `requests-toolbelt`: ```bash pip install requests requests-toolbelt ``` #### 流式上传代码示例 以下是一个完整的例子展示如何使用 `requests` 和 `requests_toolbelt` 进文件流式上传。 ```python import os import requests from requests_toolbelt import MultipartEncoder, MultipartEncoderMonitor def create_callback(encoder): """ 创建回调函数用于监控上传进度 """ total_size = encoder.len or 0 def callback(monitor): if total_size > 0: progress = (monitor.bytes_read / total_size) * 100 print(f"Upload Progress: {progress:.2f}%") return callback url = 'http://example.com/upload' file_path = '/path/to/large_file.zip' with open(file_path, 'rb') as file_handle: multipart_encoder = MultipartEncoder( fields={ 'field_name': ('filename', file_handle, 'application/zip') } ) monitor = MultipartEncoderMonitor(multipart_encoder, create_callback(multipart_encoder)) headers = {'Content-Type': multipart_encoder.content_type} response = requests.post(url, data=monitor, headers=headers) if response.status_code == 200: print('文件上传成功') else: print('文件上传失败:', response.text) ``` 以上代码实现了以下几个关键点[^4]: - **MultipartEncoder**: 构建了一个分块编码器对象来处理文件作为二进制流。 - **MultipartEncoderMonitor**: 提供了对上传过程的实时监控能力。 - **headers 设置**: 自动设置合适的 `Content-Type` 头部字段以便服务端能够解析请求体的内容结构。 #### 注意事项 如果目标服务器启用了 SSL/TLS 加密连接,则可能还需要配置证书验证逻辑或者禁用安全校验(仅限开发环境)。例如,在发送 POST 请求前加入如下参数即可跳过 HTTPS 认证警告: ```python response = requests.post(url, data=monitor, headers=headers, verify=False) ``` 不过建议生产环境中始终启用有效的 CA 验证机制以保障通信安全性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

COCO56(徐可可)

建议微信红包:xucoco56

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值