这几天在学习python,从昨天开始安装了ubuntu系统以后,就开始研究这个备份文件的例子,可是无论如何,总是不成功,不是说
OSError: [Errno 2] No such file or directory:
就是说
OSError: [Errno 13] Permission denied:
这些错误都是因为一个os.mkdir()的系统模块的方法,终于是把我惹急了,在这个方法之前添加了测试输出语句,完全可以执行,很明显就是这个方法搞得不对,google了一下os.mkdir();找到了一个硬货,http://bbs.chinaunix.net/thread-1313995-1-1.html,发现我原来写的target_dir里边是没有"./"的,估计是这种原因造成的,后来直接建了一个简单的python源文件,
#/!usr/bin/python import os os.mkdir( './image/image2' )
测试通过,完全可以执行,后来研究了一下,这个路径需要是当前路径下的子文件夹,并且需要有“./”开头,这个方式应该是资料中所说的相对目录,后来又测试了一下绝对路径,将路径修改成了'/home/zaj/mypython/e',果然起效了,我记得刚才也有这样写过,可是没有成功过阿,难道是错觉,好吧,不管怎样,我是把备份测试成功,并且初步了解了os.mkdir()的相对路径和绝对路径的创建文件夹,就这样吧,今天到此为止,运动,休息,明天继续搞,最后把测试代码贴出来,其实是简明教程里边的源码,只是对路径进行了修改,源码中真的没有加相对路径的“./”,也不知道是印刷问题还是版本问题,不管了,贴码!
#!/usr/bin/python #Filename:backup_ver2.py import os import time source = ['/home/zaj/mypython/','home/zaj/mypython/image'] target_dir = '/home/zaj/mypython/e' #这是绝对路径 #target_dir = './e'这个地方是相对路径 today = target_dir + time.strftime('%Y%m%d') now = time.strftime('%H%M%S') print 'daozheli' if not os.path.exists(today): os.mkdir(today) print 'Successfully created directory', today target = today + os.sep + now + '.zip' zip_command = "zip -qr '%s' %s" % (target, ' '.join(source)) if os.system(zip_command) == 0: print 'Successful backup to', target else: print 'Backup FAILED'