想象一下,你有:
keys = ['name', 'age', 'food']
values = ['Monty', 42, 'spam']
Run Code Online (Sandbox Code Playgroud)
生成以下字典的最简单方法是什么?
a_dict = {'name' : 'Monty', 'age' : 42, 'food' : 'spam'}
Run Code Online (Sandbox Code Playgroud) 是否可以使用包含tar数据的缓冲区在内存中创建TarFile对象,而无需将TarFile写入磁盘并再次打开它?我们得到通过套接字发送的字节.
像这样的东西:
import tarfile
byte_array = client.read_bytes()
tar = tarfile.open(byte_array) # how to do this?
# use "tar" as a regular TarFile object
for member in tar.getmembers():
f = tar.extractfile(member)
print(f)
Run Code Online (Sandbox Code Playgroud)
注意:执行此操作的原因之一是我们最终希望能够同时使用多个线程执行此操作,因此如果两个线程同时尝试执行此操作,则可能会覆盖临时文件.
感谢您的帮助!
我有一个25GB的文本文件.所以我把它压缩到tar.gz,它变成450 MB.现在我想从python中读取该文件并处理文本数据.对于这个我提到的问题.但在我的情况下代码不起作用.代码如下:
import tarfile
import numpy as np
tar = tarfile.open("filename.tar.gz", "r:gz")
for member in tar.getmembers():
f=tar.extractfile(member)
content = f.read()
Data = np.loadtxt(content)
Run Code Online (Sandbox Code Playgroud)
错误如下:
Traceback (most recent call last):
File "dataExtPlot.py", line 21, in <module>
content = f.read()
AttributeError: 'NoneType' object has no attribute 'read'
Run Code Online (Sandbox Code Playgroud)
还有,还有其他方法可以完成这项任务吗?
我有一个我不想提取的存档,但检查它的每个内容是文件还是目录.
os.path.isdir和os.path.isfile不起作用,因为我正在处理归档.存档可以是tar,bz2,zip或tar.gz中的任何一个(因此我不能使用他们的特定库).此外,代码应该适用于任何平台,如Linux或Windows.任何人都可以帮我怎么做?
我有一个巨大的*.tar.gz文件,我想查看其中包含的文件列表而不提取内容(最好每个文件使用mtimes).我怎么能在python中实现这一点?
python ×5
file ×2
gzip ×2
tar ×2
archive ×1
compression ×1
dictionary ×1
extraction ×1
list ×1
python-3.x ×1
tarfile ×1
zip ×1