def compress():
if args['compression'] == 'Yes':
for day in getdate():
x = str(day.strftime('%Y/%m/%d')).replace("/0","/")
print (x)
loc_postfix = log_type+"/"+x
location = "s3://bucket
我正在Windows 10上运行Python3.6.4和秋季创建者更新。我试图解压缩一个维基媒体数据转储文件,特别是。
这个文件在命令行上使用7z解压缩没有问题,但是在第一个数据块上失败,从Python解压缩程序输出的数据长度为零。守则如下:
import bz2
def decompression(qin, # Iterable supplying input bytes data
qout): # Pipe to next process - needs bytes data
deco
我有一个超过10 of的BZ2文件。我想阅读它而不将它解压缩成一个临时文件(它将超过50 to )。
用这种方法:
import bz2, time
t0 = time.time()
time.sleep(0.001) # to avoid / by 0
with bz2.open("F:\test.bz2", 'rb') as f:
for i, l in enumerate(f):
if i % 100000 == 0:
print('%i lines/sec' % (i/(time.time(
我已经使用bz2库在内存中动态地解压缩和读取文件。然而,我已经通读了文档,似乎不能简单地解压缩文件来在文件系统上创建一个全新的文件,其中包含没有内存存储的解压缩数据。当然,您可以使用BZ2Decompressor逐行读取,然后将其写入文件,但这将非常慢。(解压缩大量文件,50GB+)。有没有一些我忽略的方法或库,可以在不使用子进程调用终端命令的情况下实现与python中的终端命令bz2 -d myfile.ext.bz2相同的功能?
bz2速度如此慢的原因示例:
通过bz2 -d解压该文件:104秒
对解压缩文件的分析(只涉及逐行阅读):183秒
with open(file_src) as
我从获得了一个代码,它定义了一个压缩文本字段。我需要这样做,因为我存储了太多的文本,而且我的数据库太大了。问题是,代码没有任何文档,而且令人困惑。
特别是,我对代码做了一些修改,在这里:
def get_prep_value(self,value):
if not value:
return value
try:
tmp = value.encode('utf-8').encode('bz2')
except Exception:
return value
else: