介绍
小编给大家分享一下使用Python脚本实现文件拷贝的方法,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!
<强> 1。实现目的
强>
统一时间对服务器某文件夹内文件进行备份保存,如若备份成功则不提示任何错误,否则将以邮件的形式告知管理员,备份出错。
<强> 2。程序流程图强>
主要流程图
拷贝流程图
<强> 3。代码编写
强>
1。MyMain函数
[root@Python CheckCopyFiles] #, cat MyMain.py # !/usr/bin/env python import 操作系统 import 系统 import MyFileZip def main (),: dir1 =,才能“/根/dir1" dir2 =,才能“/根/dir2" if 才能os.path.isdir (dir2),==, False : ,,,os.mkdir (dir2) ,, if 才能os.path.isdir (dir1),: ,,,MyFileZip.FileCopy (dir1 dir2) else 才能: ,,,sys.exit (1),, if __name__ ==,“__main__",: ,,main () [root@Python CheckCopyFiles] #
2。MyFile函数
[root@Python CheckCopyFiles] #, cat MyFileZip.py # !/usr/bin/env python import zipfile import 时间 import 操作系统 import MySendMail def FileCopy (dir1 dir2),: 尝试才能: ,,,NowDate =, time.strftime (“Y % - % - % d") ,,,Zfile =, dir2 +, & # 39;/& # 39; + & # 39; logfile_& # 39; + NowDate + & # 39; . zip # 39; ,,,zf =, zipfile.ZipFile (Zfile & # 39; w # 39;) ,, ,,,for filename 拷贝os.listdir (dir1),: ,,,,,if os.path.isfile(时间+ dir1 & # 39;/& # 39;, +,文件名),: ,,,,,,,zf.write(时间+ dir1 & # 39;/& # 39;, +,文件名) ,,,,,,,os.remove(时间+ dir1 & # 39;/& # 39;, +,文件名) ,,,, ,,,zf.close () 除了才能: ,,,MySendMail.SamMail (NowDate、dir1和dir2) [root@Python CheckCopyFiles] #
3。SendMail函数
[root@Python CheckCopyFiles] #, cat MySendMail.py # !/usr/bin/env python import smtplib import email.mime.text def SamMail (NowDate dir1 dir2),: HOST =,才能“smtp.163.com" SUBJECT =,才能“Copy File Warning" 用=,才能“发送的帐号“ 得到=,才能“来自于账户”; Remask =,才能“Copy dirctory warning" msg 才能=,email.mime.text.MIMEText (“““ & lt;才能html> ,,,& lt; body> ,,,,,& lt; h2> Warning ,,,,,& lt; h3>时间:% s, ,,,,,& lt; h3> Dirctory: % s, ,,,,,& lt; h3> Remask: % s, ,,,& lt;/body> & lt;才能/html> “““才能,%,(NowDate dir1,“Copy  File Error"),“html",“utf-8") 味精才能[& # 39;主题# 39;],=, 味精才能[& # 39;从# 39;],=, 味精才能[& # 39;使# 39;],=, 尝试才能: ,,,server =, smtplib.SMTP () ,,,server.connect(主机,& # 39;25 & # 39;) ,,,server.starttls () ,,,server.login(“帐号“,“密码“) ,,,server.sendmail (,, msg.as_string ()) ,,,server.quit () 除了才能: ,,,print (“Send mail Error") [root@Python CheckCopyFiles] #
<强> 4。实现效果强>
4.1建立新的文件
, (root@Python ~) #, touch /根/dir1/7 /根/dir1/8 (root@Python ~), #
4.2执行代码
, (root@Python ~) #, python /根/python/CheckCopyFiles/MyMain.py (root@Python ~), #
4.3查看文件
, (root@Python ~) #, ls -l /根/dir1 a total 0 ,drwxrwxrwx又是;2,root root , 6, Aug 27 09:26 。 ,dr-xr-x——只6,root root 201年,Aug 27, 09:26 . . (root@Python ~), #
[root@Python ~] #, ls -l /根/dir2/total 4 -rw-r - r -只1,root root 218年,Aug 27, 09:28 logfile_2017 - 08 - 27. - zip null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null使用Python脚本实现文件拷贝的方法