#!/usr/bin/python
#Filename:FileBackUP.py
import os
import time
source = [r'd:\temp', r'd:\"tools config"']
target_dir = 'd:\\python_tmp\\' + time.strftime('%Y%m%d')
target_filename = target_dir + '\\' + time.strftime('%H%M%S') + '.zip'
zip_command = r'c:\"program files"\7-zip\7z.exe a %s %s' %(target_filename, " ".join(source))
if not os.path.exists(target_dir):
os.mkdir(target_dir)
print 'Successfully created directory', target_dir
if os.system(zip_command) == 0:
print 'Successful backup to ',target_filename
else:
print 'Backup Failed'
上面的代码执行后,提示
C:\Users\leo>python C:\Users\leo\Desktop\test.py
Traceback (most recent call last):
File "C:\Users\leo\Desktop\test.py", line 12, in <module>
os.mkdir(target_dir)
WindowsError: [Error 3] : 'd:\\python_tmp\\20170213'
这个问题怎么解决,请大神帮忙,谢谢
os.mkdir()不能自动创建父目录.也就是说可能你的d:\\python_tmp不存在,所以导致的报错
有两种办法解决:
一楼os.makedirs正解,另外#!/usr/bin/python来调用python的解释器在unix/linux的环境下是对的,而windows的话要改成你自己机器python的安装目录,还有一点在windows下边可以偷懒 目录分割可以用/代替\\(用win8+python3.4是可以,不知道你的机器+python2.*能不能),有时候像目录名首字母是t n r 比如 \tmp \run\new这种含有特殊意义的(\t\r\n) 处理不小心就会出错 不过注意点也是可以避免,创建目录的时候可以做一下异常捕获
感谢!第一行的she-bang本来就是给linux/unix用的,在windows环境下没卵用(除非用posix运行环境,比如cygwin或mingw32,并且脚本要给可执行权限。)涉及到路径,使用`os.path.join("a","b","c")`这种替代手写分隔符更好点,不容易出问题。
感谢!版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。