用法:
writepy(pathname, basename='', filterfunc=None)
搜索文件
*.py
並將相應的文件添加到存檔中。如果
PyZipFile
的optimize
參數未給出或-1
,則相應的文件是*.pyc
文件,必要時進行編譯。如果
PyZipFile
的optimize
參數是0
、1
或2
,則僅將具有該優化級別的文件(請參見compile()
)添加到存檔中,並在必要時進行編譯。如果
pathname
是文件,則文件名必須以.py
結尾,並且僅在頂層添加(對應的*.pyc
)文件(無路徑信息)。如果pathname
是一個不以.py
結尾的文件,則會引發RuntimeError
。如果是目錄,並且該目錄不是包目錄,則將所有文件*.pyc
添加到頂層。如果目錄是包目錄,則將所有*.pyc
作為文件路徑添加到包名下,如果有子目錄是包目錄,則按順序遞歸添加。basename
僅供內部使用。filterfunc
如果給定,則必須是采用單個字符串參數的函數。在添加到存檔之前,它將通過每個路徑(包括每個單獨的完整文件路徑)。如果filterfunc
返回 false 值,則不會添加路徑,如果是目錄,則忽略其內容。例如,如果我們的測試文件都在test
目錄中或以字符串test_
開頭,我們可以使用filterfunc
來排除它們:>>> zf = PyZipFile('myprog.zip') >>> def notests(s): ... fn = os.path.basename(s) ... return (not (fn == 'test' or fn.startswith('test_'))) >>> zf.writepy('myprog', filterfunc=notests)
writepy()
方法使用如下文件名製作檔案:string.pyc # Top level name test/__init__.pyc # Package directory test/testall.pyc # Module test.testall test/bogus/__init__.pyc # Subpackage directory test/bogus/myfile.pyc # Submodule test.bogus.myfile
3.4 版中的新函數:
filterfunc
範圍。在 3.6.2 版中更改:
pathname
參數接受一個path-like 對象.在 3.7 版中更改:遞歸對目錄條目進行排序。
相關用法
- Python zipfile.Path.joinpath用法及代碼示例
- Python zipfile.ZipFile.open用法及代碼示例
- Python zip()用法及代碼示例
- Python zip用法及代碼示例
- Python string zfill()用法及代碼示例
- Python zlib.compress(s)用法及代碼示例
- Python zlib.decompress(s)用法及代碼示例
- Python zlib.adler32()用法及代碼示例
- Python numpy matrix zeros()用法及代碼示例
- Python zlib.crc32()用法及代碼示例
- Python zoneinfo.ZoneInfo用法及代碼示例
- Python cudf.core.column.string.StringMethods.is_vowel用法及代碼示例
- Python torch.distributed.rpc.rpc_async用法及代碼示例
- Python torch.nn.InstanceNorm3d用法及代碼示例
- Python sklearn.cluster.MiniBatchKMeans用法及代碼示例
- Python pandas.arrays.IntervalArray.is_empty用法及代碼示例
- Python tf.compat.v1.distributions.Multinomial.stddev用法及代碼示例
- Python numpy.less()用法及代碼示例
- Python tf.compat.v1.distribute.MirroredStrategy.experimental_distribute_dataset用法及代碼示例
- Python Sympy Permutation.list()用法及代碼示例
注:本文由純淨天空篩選整理自python.org大神的英文原創作品 zipfile.PyZipFile.writepy。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。