weixin_45495338 2019-09-18 13:30 采纳率: 0%
浏览 625

请问为什么Python使用zipfile压缩文件时,无法生成文件

请问如下Python代码为什么不能生成一个新的zip文件呢?提示i错误:[Errno 2] No such file or directory: 'C:\Users\peiran.peng\Desktop\QA\第三讲\test\turbid.zip'
同样的代码在jupyter notebook里运行就没有问题。区别只是在notebook里面我先运行了%cd C:\Users\peiran.peng\Desktop\QA\第三讲\test。

谢谢!

"""Python

def slc_doc(from_dir, file_name):
"""
把目标文件夹内doc, xlsx, docx文件压缩,命名为turbid.zip
"""
    try:
    my_zip = zipfile.ZipFile(file_name, 'w')
    for root, dirs, files, in os.walk(from_dir):
        for name in files:
            ma = re.search('(.*doc$)|(.*xlsx$)|(.*docx)', name)
            if ma:
                file = os.path.join(root, name)
                print(file)
                my_zip.write(file, compress_type=zipfile.ZIP_DEFLATED)
    my_zip.close()
    return auto_name(f'{from_dir}\\{file_name}')
except Exception as e:
    print(f'错误!{e}')  # 运行时错误提示:[Errno 2] No such file or directory: 'C:\\Users\\peiran.peng\\Desktop\\QA\\第三讲\\test\\turbid.zip'

def auto_name(source_name): # source_name 为.zip文件
"""
自动命名,先判断文件名是否存在
"""
nt = re.compile(r'A-(\d+).zip')
list = []
list1 = []
for x in os.listdir(os.path.dirname(source_name)):
    list1.append(x) # 各种文件名
for name in list1:
    pp = re.search(nt, name) # 判断原文件夹中是否有A-*.zip类文件
    if pp:
        list.append(int(pp.group(1))) # 把文件中所有A-*.zip的文件加入List
        t = re.search(nt, source_name)
        if t:
            kk = int(re.search(nt, source_name).group(1))
            if kk < max(list):
                kk = max(list)
                kk += 1
            new = nt.sub(f'A-{kk}.zip', source_name)
            print(f'created {new}')
        else:
            t = max(list) + 1
            shutil.copy(source_name, f'A-{t}.zip')
    else: 
        shutil.copy(source_name, 'A-1.zip')

def main():
    slc_doc(r'C:\Users\peiran.peng\Desktop\QA\第三讲\test', 'turbid.zip')

if __name__ == "__main__":
    main()

  • 写回答

1条回答

  • dabocaiqq 2019-09-18 18:51
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛