python 读文件,每次读取100k。读完从头再读
时间: 2024-09-28 15:06:54 浏览: 6
在Python中,如果你需要反复读取一个大文件并且每次只读取固定大小(如100KB),可以使用`read()`或`readline()`结合循环来实现。这里我们假设你有一个名为`large_file.txt`的大文件,你可以这样做:
```python
chunk_size = 100 * 1024 # 设置每块读取的字节数,这里是100KB
file_path = 'large_file.txt'
with open(file_path, 'rb') as file:
while True:
chunk = file.read(chunk_size)
if not chunk: # 文件已读完,break退出循环
break
process_data(chunk) # 处理读取的数据
# 每次读取完后,关闭文件然后再从头开始
file.seek(0) # 将文件指针移动到开头
```
这里的`process_data(chunk)`是你自定义的部分,用于处理每次读取的100KB数据。`with`语句确保文件在读取完毕后会被正确关闭。
注意,如果你不想每次都读取整个100KB,而是在读取过程中分批处理,可以修改`process_data()`内部的逻辑。
相关问题
python读文件,全读完后seek 0 从头再读
在Python中,当你需要读取文件并一次性读取所有内容到内存中,可以使用内置的`open()`函数打开文件,并选择以二进制模式(`'rb'`)或文本模式(`'r'`)读取。然后,你可以使用`read()`方法将整个文件内容读入到一个字符串变量中。例如:
```python
with open('filename.txt', 'r') as file:
content = file.read()
```
这里使用了`with`语句来自动关闭文件,这是一种最佳实践。
如果你已经读完了文件并且想再次从头开始读取,你可以简单地再次打开同一个文件。不过,由于你刚刚读取的内容已经被保存在`content`变量中,如果你想再次从文件中获取数据,直接访问这个变量即可,不需要再次调用`read()`。
但是,如果你想要回到文件的开头并重新读取,你可以在读取操作之后调用`file.seek(0)`,它会将文件指针移动到起始位置。接着,你可以再次尝试读取文件:
```python
file.seek(0)
new_content = file.read() # 这里假设`content`已被消耗
```