如何解决我的脚本的可选命令行参数
我正在编码一个脚本,该脚本可以压缩Hall文件夹,或者您可以选择具有特定扩展名的文件,例如“ .txt”。如果需要,我使用sys.argv传递文件夹路径和扩展名。但是,当我通过路径时,我唯一得到的就是这个错误:
fileEx = sys.argv[2]
IndexError: list index out of range
如何使“文件扩展名”命令行为可选?
我的脚本:
import zipfile,os,sys
if len(sys.argv) < 2:
folder_path = sys.argv[1]
fileEx = None
else:
folder_path = sys.argv[1]
fileEx = sys.argv[2]
def zipf(folder_path,fileEx=None):
folder_path = os.path.abspath(folder_path)
number = 1
while True:
zipfilename= os.path.basename(folder_path) + "_" + str(number) +'.zip'
if not os.path.exists(zipfilename):
break
number = number + 1
# creat the zip file
print(f'creating {zipfilename}')
backupZip = zipfile.ZipFile(zipfilename,'w')
# walking through folders
for foldername,subfolders,filenames in os.walk(folder_path):
print(f'Adding files in {foldername}. . . ')
#adding the folder
backupZip.write(foldername)
# adding all files in the folder to zipfile
for filename in filenames:
newBase = os.path.basename(folder_path) + '_'
if filename.startswith(newBase) and filename.endswith('.zip'):
continue
if fileEx:
if filename.endswith(fileEx):
os.chdir(foldername)
backupZip.write(os.path.join(foldername,filename))
else:
backupZip.write(os.path.join(foldername,filename))
backupZip.close()
zipf("folder_path,fileEx")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。