0
我需要創建一個腳本來從多個文件夾複製所有文件.class和.xml,並生成一個類似於tar類型的包,這些不同的路徑文件夾將在腳本運行時填充,這是否可能?創建一個包文件python
我使用的Linux - Centos的
感謝
我需要創建一個腳本來從多個文件夾複製所有文件.class和.xml,並生成一個類似於tar類型的包,這些不同的路徑文件夾將在腳本運行時填充,這是否可能?創建一個包文件python
我使用的Linux - Centos的
感謝
Python的標準庫自帶multiple archiving modules,而更多的是從PyPI中和其他地方。
我不確定你想如何填寫要包含的東西的路徑,但假設你已經完成了這個部分,並且你有一個列表或迭代器,其中包含(適當的相對)路徑名文件。然後,你可以這樣做:
with tarfile.TarFile('package.tgz', 'w:gz') as tar:
for pathname in pathnames:
tar.add(pathname)
但是,你甚至不必逐一收集所有的文件,因爲tarfile
可以爲你做的。比方說,你的腳本只是需要一個或多個目錄名作爲命令行參數,你希望它遞歸添加的所有後綴名爲.xml
或.class
在任何這些目錄中的任意位置的文件:
def package_filter(info):
if info.isdir() or os.path.splitext(info.name)[-1] in ('.xml', '.class'):
return info
else:
return None
with tarfile.TarFile('package.tgz', 'w:gz', filter=package_filter) as tar:
for pathname in sys.argv[1:]:
tar.add(pathname)
有關更多信息,請參閱examples。但主要是閱讀TarFile
的構造函數和open
方法的文檔。
您正在使用哪個版本的Python 3.x?如果你被困在3.1中,'tarfile'的更強大的功能有點不同。 – abarnert