python简明教程里关于zip的一点解决办法
来源:互联网 发布:tftp 指定端口号 编辑:程序博客网 时间:2024/05/18 01:58
在python简明教程里,有ZIP备份的一个小教程,下载了zip后并在PATH添加bin文件夹的目录,然后在pycharm中运行那段程序,会提示内部外部没有这个命令,个人是这么解决的(我用的Win7):把bin中的把zip.exe放到C:\Windows\SysWOW64中,zip.exe和把bzip2.dll一起拷贝到C:\Windows\System32中,然后在C:\Windows\System32中shift+右键打开命令行,运行zip或者zip.exe,然后就搞定了。回到pycharm中运行,也能打包了,但是这里面还存在一个问题,那就是如果target_dir(即备份目标文件及)中如果包含空格,会提示:“ OSError: [WinError 123] 文件名、目录名或卷标语法不正确” ,如果是单引号包含的话,可以打包,但是会在上一级目录生成一个名字不是全对的zip文件,目前暂时没有解决办法,只能把文件名改一下,之后找到了再回来补。
2017年8月25日15:46:09 补充1:如果想要带空格:
target_dir = '"D:\\py_backup_test\\iu d"'target = target_dir + os.sep + \time.strftime('%Y%m%d%H%M%S') + '.zip'# 如果目标目录还不存在,则进行创建#if not os.path.exists(target_dir): # os.mkdir(target_dir) # 创建目录
则要注释掉检查目录存在与否并创建那两句,因为os.path.exists通过不了带双引号的路径,要是带单引号就能通过,但是不能创建出正确的zip文件
2017年8月25日16:29:23 补充2:解决带空格的方案:
在文件一开头加上
import re
然后:
# 3. 备份文件将打包压缩成 zip 文件。# 4. zip 压缩文件的文件名由当前日期与时间构成。target = target_dir + os.sep + \time.strftime('%Y%m%d%H%M%S') + '.zip'# 如果目标目录还不存在,则进行创建if not os.path.exists(target_dir): os.mkdir(target_dir) # 创建目录if re.search(r"\s", target_dir):#判断路径中是否有空格,有的话要用双引号包起来 target_dir_temp_list1 = list(target_dir)#先把字符串转成列表 target_dir_temp_list1.insert(0,"\"")#把列表的第一位加上一个双引号 target_dir_temp_str1 = "".join(target_dir_temp_list1)#转成字符串 target_dir_temp_str2 = target_dir_temp_str1+ os.sep+\ time.strftime('%Y%m%d%H%M%S') + '.zip'#加上时间和后缀名 target_dir_temp_list2 = list(target_dir_temp_str2)#再转成字符串 target_dir_temp_list2.append("\"") #加上最后一个双引号,再转成字符串 target = "".join(target_dir_temp_list2)# 5. 我们使用 zip 命令将文件打包成 zip 格式zip_command = 'zip -r {0} {1}'.format(target, ' '.join(source))
2017年8月28日08:40:50 补充3:新的写法:
我觉得那样写的很麻烦,于是在sf提问,我觉得还是基本功不扎实,虽然才学了两三天。
target_dir=target_dir+ os.sep + time.strftime('%Y%m%d%H%M%S') + '.zip'target ='"'+target_dir+'"'
就解决了
阅读全文
0 0
- python简明教程里关于zip的一点解决办法
- 简明Python教程的一个例子
- python简明教程中__del__的疑问
- Python简明教程最后的练习题
- 飘逸的python - yield简明教程
- 《简明python教程》的学习笔记
- 关于安装程序制作的简明教程
- 关于安装程序制作的简明教程
- 简明 Python 教程
- 简明 Python 教程
- 简明Python 教程 --模块
- 简明Python教程
- 简明 Python 教程
- 《简明Python教程》读书笔记
- [ 转]简明 Python 教程
- 《简明Python教程》笔记
- python简明教程
- 简明 Python 教程
- C/C++ 大小端理解及转换
- hibernate sum求和(hql和sql)
- 使用Json的两种方式
- Oracle报错,ORA-28001: 口令已经失效
- poj 2104 K-th Number
- python简明教程里关于zip的一点解决办法
- 面向对象中的构造函数
- [Android6.0][RK3399] PWM Backlight 驱动分析
- Java中局部变量与成员变量(全局变量的区别)
- get和post请求
- mysql在面试中遇到的问题
- SVN的checkout和export
- Spring boot 在Java文件中读取Resource下的文件
- D10 MapRedecu程序案例思路汇总