是否可以在内存中创建文件,并在将它们写入磁盘之前将它们排列成一种层次结构?
是否可以将open
语句重定向到某种内存中表示形式?
我目前用于创建压缩目录的技术是:
zipfile
对象最终以这样的结局结束:
Zipped_root
|
|
|---- file1.txt
|
|---- Image1.png
|
|---- Image2.png
|
|---- file...N.txt
|
有没有办法在记忆中做到这一切?
答案 0 :(得分:3)
前段时间我实现了一个小型python库(https://github.com/kajic/vdir),用于创建虚拟目录,文件,甚至在需要时压缩它们。从README(最后压缩虚拟目录):
from vdir import VDir
vd = VDir()
# Write to file
vd.open("path/to/some/file").write("your data")
# Create directory, go inside it, and write to some other file
vd.mkdir("foo")
vd.cd("foo")
vd.open("bar").write("something else") # writes to /foo/bar
# Read from file
vd.open("bar").read()
# Get the current path
vd.pwd()
# Copy directory and all its contents
vd.cp("/foo", "/foo_copy")
# Move the copied directory somewhere else
vd.mv("/foo_copy", "/foo_moved")
# Create a file, then remove it
vd.open("unnecessary").write("foo")
vd.rm("unnecessary")
# Walk over all directories and files in the virtual directory
vd.cd("/")
for base, dirnames, dirs, filenames, files in vd.walk():
pass
# Recursively list directory contents
vd.ls()
# Create a zip from the virtual directory
zip = vd.compress()
# Get zip data
zip.read()
我只是为了好玩而做了这件事,并没有对它进行过广泛的测试,但无论如何它可能对你有用。
答案 1 :(得分:0)
是。查看有关压缩对象的zlib模块文档。还有一个归档模块,可用于创建要压缩的归档对象。您可以随时访问文档:
$ python
>>> import zlib
>>> help(zlib)