当前位置:首页 » 编程语言 » python大文件处理

python大文件处理

发布时间: 2022-08-16 09:58:44

① 怎样用python实现大文件遍历并修改内容

用生成器处理大文本文件,效率超级高。
2个多G文件,7秒处理完。

② 使用Python 处理大文件有什么推荐的方式么

以前弄过一些组学的文件,如果是纯文本的话不要用 for..in..语句,用 readlines 读入几千行后再用 readline 处理,如果是 utf8 之类非等长的字节编码的话先按 byte 编码读入文本必要时再解析成别的,最后把文件塞到内存盘再加个多进程。如果要求不高用 bash+awk 比 python 快很多。

③ python 如何读取大文件

你可以不用一次读完存到内存里,可以一行一行的读,用.readline()读一行处理一行,这样不会占很多内存,多大的文件都没关系

④ 想用python处理比较大的单色图片文件,如何提高速度

你好,你可以考虑使用numpy的函数来做,下面是例子的python代码

image=np.zeros((400,400,3),dtype="uint8")
raw=image.()
image[np.where((image==[0,0,0]).all(axis=2))]=[255,255,255]
cv2.imshow('Test0',image)
lower_black=np.array([0,0,0],dtype="uint16")
upper_black=np.array([70,70,70],dtype="uint16")
black_mask=cv2.inRange(image,lower_black,upper_black)
image[np.where((image==[0,0,0]).all(axis=2))]=[155,255,155]
black_mask[np.where(black_mask==[0])]=[155]

你把上面的那个image的数值改成你需要改的目标就可以直接替换了。

⑤ python 读取大文件数据怎么快速读取

python中读取数据的时候有几种方法,无非是read,readline,readlings和xreadlines几种方法,在几种方法中,read和xreadlines可以作为迭代器使用,从而在读取大数据的时候比较有效果.

在测试中,先创建一个大文件,大概1GB左右,使用的程序如下:

[python] view plainprint?
import os.path
import time
while os.path.getsize('messages') <1000000000:
f = open('messages','a')
f.write('this is a file/n')
f.close()

print 'file create complted'

在这里使用循环判断文件的大小,如果大小在1GB左右,那么结束创建文件。--需要花费好几分钟的时间。

测试代码如下:

[python] view plainprint?
#22s
start_time = time.time()
f = open('messages','r')
for i in f:
end_time = time.time()
print end_time - start_time
break
f.close()

#22s
start_time = time.time()
f = open('messages','r')
for i in f.xreadlines():
end_time = time.time()
print end_time - start_time
break
f.close()

start_time = time.time()
f = open('messages','r')
k= f.readlines()
f.close()
end_time = time.time()
print end_time - start_time

使用迭代器的时候,两者的时间是差不多的,内存消耗也不是很多,使用的时间大概在22秒作用
在使用完全读取文件的时候,使用的时间在40s,并且内存消耗相当严重,大概使用了1G的内存。。

其实,在使用跌倒器的时候,如果进行连续操作,进行print或者其他的操作,内存消耗还是不可避免的,但是内存在那个时候是可以释放的,从而使用迭代器可以节省内存,主要是可以释放。
而在使用直接读取所有数据的时候,数据会保留在内存中,是无法释放这个内存的,从而内存卡死也是有可能的。

在使用的时候,最好是直接使用for i in f的方式来使用,在读取的时候,f本身就是一个迭代器,其实也就是f.read方法

⑥ 内存不足时,python如何处理大文件

手机随着使用应用软件,肯定会产生很多垃圾缓存
所以要定期的清理垃圾缓存,就可以了
可以装个腾讯手机管家,打开清理加速功能,可以自动检测出手机垃圾缓存,一键清理

⑦ 如何用python快速读取几G以上的大文件

如果你没那么大的内存 解决方法有几个:

  1. 使用swap 一次性read()读取

  2. 系统层面分割大文件为数个小于系统内存的小文件,分别读取

  3. 使用python 按数据大小逐块读取,使用完数据即释放该部分内存:

whileTrue:
chunk_data=file_object.read(chunk_size)
ifnotchunk_data:
break
yieldchunk_data

⑧ 如何用python排序大文件的csv文件

分割文件为多个小文件,开启多线程依次对每个小文件读取放到数据库,在数据库里面排序好了,再读出来,保存成CSV.
个人觉得这样:
1.分割成小文件,处理每个文件的时候,占用内存比较小
2.多线程处理速度快
3.数据库比较擅长排序,如果用python的列表排序,都要读入内存,太占内存了.

⑨ python 一个文件太大+内存装不下+怎么读取 mongo

Python 环境下文件的读取问题,请参见拙文Python 基础 —— 文件

这是一道着名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适合读取大文件。

1. read() 接口的问题

f = open(filename, 'rb')
f.read()12

我们来读取 1 个 nginx 的日至文件,规模为 3Gb 大小。read() 方法执行的操作,是一次性全部读入内存,显然会造成:

MemoryError...12

也即会发生内存溢出。

2. 解决方案:转换接口

  • (1)readlines() :读取全部的行,构成一个 list,实践表明还是会造成内存的问题;

    for line in f.reanlines(): ...
  • 1

  • 2

  • (2)readline():每次读取一行,

    while True:
    line = f.readline() if not line: break
  • 1

  • 2

  • 3

  • 4

  • (3)read(1024):重载,指定每次读取的长度

    while True: block = f.read(1024) if not block: break
  • 1

  • 2

  • 3

  • 4

  • 3. 真正 Pythonic 的方法

    真正 Pythonci 的方法,使用 with 结构:

  • with open(filename, 'rb') as f: for line in f:

  • <do something with the line>123

  • 对可迭代对象 f,进行迭代遍历:for line in f,会自动地使用缓冲IO(buffered IO)以及内存管理,而不必担心任何大文件的问题。

    There should be one – and preferably only one – obvious way to do it.

⑩ python对文件的读操作方法有哪些

摘要 1 文件读取全文本操作

热点内容
php获取调用的方法 发布:2025-01-20 04:25:45 浏览:458
SMPT邮箱服务器地址 发布:2025-01-20 04:04:16 浏览:662
抖影工厂为什么安卓手机用不了 发布:2025-01-20 04:00:05 浏览:386
我的世界网易版怎么进朋友服务器 发布:2025-01-20 03:50:10 浏览:684
phpsession跳转页面跳转 发布:2025-01-20 03:47:20 浏览:540
深圳解压工厂 发布:2025-01-20 03:41:44 浏览:690
linux字体查看 发布:2025-01-20 03:41:30 浏览:742
pythonextendor 发布:2025-01-20 03:40:11 浏览:199
为什么安卓手机储存越来越少 发布:2025-01-20 03:40:07 浏览:925
算法和人性 发布:2025-01-20 03:28:31 浏览:473