Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用Python在文件夹中创建ZipFile_Python_Zip - Fatal编程技术网

无法使用Python在文件夹中创建ZipFile

无法使用Python在文件夹中创建ZipFile,python,zip,Python,Zip,我在一个目录中有多个文件夹(D:/zptest)。每个文件夹都有许多文件。我正在尝试将所有这些文件压缩到该文件夹中,并使用“foldername.zip”将文件保存到同一文件夹中。我已经为此编写了一个脚本,但不幸的是,它引发了以下错误 PermissionError: [Errno 13] Permission denied: 有人能帮我吗 我正在使用以下代码 #!/usr/bin/env python import os, zipfile from pathlib import Path l

我在一个目录中有多个文件夹(D:/zptest)。每个文件夹都有许多文件。我正在尝试将所有这些文件压缩到该文件夹中,并使用“foldername.zip”将文件保存到同一文件夹中。我已经为此编写了一个脚本,但不幸的是,它引发了以下错误

PermissionError: [Errno 13] Permission denied:
有人能帮我吗

我正在使用以下代码

#!/usr/bin/env python
import os, zipfile
from pathlib import Path
loc=r'D:\zipfilelist'
p=Path(r'D:\zptest')
for x in p.iterdir():
   x1=str(x)
   print("Processing: " + x1)
   dirs=os.listdir(x1)
   for file in dirs:
      file=os.path.join(x1,file)
      zip = zipfile.ZipFile(, "a", zipfile.ZIP_DEFLATED)
      zip.write(file)
      zip.close()

谢谢你的帮助。我能够完成一个工作代码

#!/usr/bin/env python

import os, zipfile, datetime, time
from pathlib import Path

p=Path(r'V:\NAR_ARCHIVE')
for x in p.iterdir():
x1=str(x)
print("Processing: " + x1)
#zipfilename = "%s.zip" % (x.stem)
loc=r'Y:\StorageReports\NAR_Zips'
loc=loc + '\\' + x.stem + '.zip'
print (loc)
print(x.stem)
dirs=os.listdir(x1)

#print(dirs)
for file in dirs:
sdate=datetime.datetime(2015,5,30)
edate=datetime.datetime(2015,6,7)
file=os.path.join(x1,file)
crtime=time.ctime(os.path.getmtime(file))
d1=datetime.datetime.strptime(crtime,"%a %b %d %H:%M:%S %Y")
if d1<edate and d1>sdate:
file=os.path.join(x1,file)
print(file)
#logFile = open(r"Y:\StorageReports\NAR_Zips\logfile.log","a")    
#print >> logFile,message
zip = zipfile.ZipFile(loc, "a", zipfile.ZIP_DEFLATED)
zip.write(file)
zip.close()
#/usr/bin/env python
导入操作系统、zipfile、日期时间、时间
从pathlib导入路径
p=路径(r'V:\NAR\u归档文件')
对于p.iterdir()中的x:
x1=str(x)
打印(“处理:“+x1”)
#zipfilename=“%s.zip”%(x.stem)
loc=r'Y:\StorageReports\NAR\u Zips'
loc=loc+'\\'+x.stem+'.zip'
打印(loc)
打印(x.stem)
dirs=os.listdir(x1)
#打印(目录)
对于目录中的文件:
sdate=datetime.datetime(2015,5,30)
edate=日期时间。日期时间(2015,6,7)
file=os.path.join(x1,文件)
crtime=time.ctime(os.path.getmtime(文件))
d1=datetime.datetime.StrTime(crtime,“%a%b%d%H:%M:%S%Y”)
如果是d1sdate:
file=os.path.join(x1,文件)
打印(文件)
#logFile=open(r“Y:\StorageReports\NAR\u Zips\logFile.log”,“a”)
#打印>>日志文件、消息
zip=zipfile.zipfile(位置“a”,zipfile.zip_已放气)
zip.write(文件)
zip.close()

您无权访问要压缩的特定文件夹或要写入的文件位置。如果确实要取代权限,请以超级用户身份运行脚本,或者检查用户权限。
zipfile.zipfile(,“a”,zipfile.ZIP_DEFLATED)
看起来它缺少第一个参数。我想进一步优化它。当前日期是手动输入的。但是我想手动选择日期(周日到周六)。此代码将在星期日运行,并应选择最后一周的日期。有人能帮我吗?上面的代码有示例日期。