| ???? Python ??? | ??10?? ???????????§Õ???Python??? | |
|---|---|---|
| ???? | ??????? | ???? |
?????????????????????????????§Õ?????????????????????????????
#!/usr/bin/python
# Filename: backup_ver1.py
import os
import time
# 1. The files and directories to be backed up are specified in a list.
source = ['/home/swaroop/byte', '/home/swaroop/bin']
# If you are using Windows, use source = [r'C:\Documents', r'D:\Work'] or something like that
# 2. The backup must be stored in a main backup directory
target_dir = '/mnt/e/backup/' # Remember to change this to what you will be using
# 3. The files are backed up into a zip file.
# 4. The name of the zip archive is the current date and time
target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'
# 5. We use the zip command (in Unix/Linux) to put the files in a zip archive
zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))
# Run the backup
if os.system(zip_command) == 0:
print 'Successful backup to', target
else:
print 'Backup FAILED'
????????code/backup_ver1.py??
$ python backup_ver1.py
Successful backup to /mnt/e/backup/20041208073244.zip
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????§Ö? ÓR? ????????
???????????????????? ??? ???????????? ???? ??
?????????os??time??ï…??????????????????????????source?§Ò??????????????????????????????????????›¥?????????????????target_dir?????????zip?ùr???????????????????????????time.strftime()??????¨¢?????????.zip?????????????????target_dir???§³?
time.strftime()???????????????????????????????????%Y???????????????????%m??01??12?????????????¡¤???????????????????????§»??????????????????Python?¦Ï?????§Ý?¨¢???Python?¦Ï?????????????Python???§Ñ??§³??????§»??????????print????????%????????ï‚?????????????????
??????¨¹?????????? ???? ???????????????????????????????????¦Ì???????????????????????????????zip???????????????????????zip_command?????????????????????§Ö????þŸ???????shell??Linux??????DOS???????????????????????????????
zip???????§»?????????-q??????????zip????????????????-r?????zip?????????????????????????????????????§Ö??????????????????????§Õ???-qr??????????????????zip?ùr????????????????????????????§Ò???????????????????????join??????source?§Ò????????????
??????????os.system???? ???? ?????????????????????? ?? ???????????????????shell????????????????????????§µ???????0?????????????????
?????????????????????????????????????????????????????????????????????????????????????????????????????
??Windows????????
??????source?§Ò??target?????¨®??¦Ê??????????????????Windows?????§³???§»????????Windows???§Ò???\???????????????Python?¡Â?§Ò??????????
??????????????????????§Ò????????????????????????íà???'C:\\Documents'??r'C:\Documents'??????'C:\Documents'?????????????????????????\D??
????????????????????????????????????????????¦Ê??????????????????????????????????Linux/Unix?????????????????§Ö??????????????????¦Ê¦Å???¦Ê???????§Ò??????????????????????????????????
??????????????????????????????????????????????????????????????????íà??????§»???????????????????????????????????????????????????????????¡ê???????????????????????
??????·Ú??????????????????????????????§»?????????????????????????§Ò????¨¢??????????????????
?????????????????????????????????? ??? ????????????????? ???? ???????????????????????§³????????????????????????????????›¥?????????????????????????????????????????????????????????????????????????????????§á??????????????????????????????????????????????????????????????????
#!/usr/bin/python
# Filename: backup_ver2.py
import os
import time
# 1. The files and directories to be backed up are specified in a list.
source = ['/home/swaroop/byte', '/home/swaroop/bin']
# If you are using Windows, use source = [r'C:\Documents', r'D:\Work'] or something like that
# 2. The backup must be stored in a main backup directory
target_dir = '/mnt/e/backup/' # Remember to change this to what you will be using
# 3. The files are backed up into a zip file.
# 4. The current day is the name of the subdirectory in the main directory
today = target_dir + time.strftime('%Y%m%d')
# The current time is the name of the zip archive
now = time.strftime('%H%M%S')
# Create the subdirectory if it isn't already there
if not os.path.exists(today):
os.mkdir(today) # make directory
print 'Successfully created directory', today
# The name of the zip file
target = today + os.sep + now + '.zip'
# 5. We use the zip command (in Unix/Linux) to put the files in a zip archive
zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))
# Run the backup
if os.system(zip_command) == 0:
print 'Successful backup to', target
else:
print 'Backup FAILED'
????????code/backup_ver2.py??
$ python backup_ver2.py
Successfully created directory /mnt/e/backup/20041208
Successful backup to /mnt/e/backup/20041208/080020.zip
$ python backup_ver2.py
Successful backup to /mnt/e/backup/20041208/080428.zip
???????????????????????????????????os.exists??????????????????????????????????????????????????§µ????????os.mkdir??????????
???os.sep???????¡Â???????????????????????????????????Linux??Unix??????'/'????Windows??????'\\'??????Mac OS??????':'?????os.sep???????????????????????????????????????????????§»???1?????
??????·Ú????????????????????¨°????????????§Þ?????????????????????????????????????????????????íà??????????????????????§»????????????????????§»?????zip?ùr?????????????????????????zip?ùr???????????????????????????????
??10.3 ???????????·Ú??????????????
#!/usr/bin/python
# Filename: backup_ver3.py
import os
import time
# 1. The files and directories to be backed up are specified in a list.
source = ['/home/swaroop/byte', '/home/swaroop/bin']
# If you are using Windows, use source = [r'C:\Documents', r'D:\Work'] or something like that
# 2. The backup must be stored in a main backup directory
target_dir = '/mnt/e/backup/' # Remember to change this to what you will be using
# 3. The files are backed up into a zip file.
# 4. The current day is the name of the subdirectory in the main directory
today = target_dir + time.strftime('%Y%m%d')
# The current time is the name of the zip archive
now = time.strftime('%H%M%S')
# Take a comment from the user to create the name of the zip file
comment = raw_input('Enter a comment --> ')
if len(comment) == 0: # check if a comment was entered
target = today + os.sep + now + '.zip'
else:
target = today + os.sep + now + '_' +
comment.replace(' ', '_') + '.zip'
# Create the subdirectory if it isn't already there
if not os.path.exists(today):
os.mkdir(today) # make directory
print 'Successfully created directory', today
# 5. We use the zip command (in Unix/Linux) to put the files in a zip archive
zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))
# Run the backup
if os.system(zip_command) == 0:
print 'Successful backup to', target
else:
print 'Backup FAILED'
????????code/backup_ver3.py??
$ python backup_ver3.py
File "backup_ver3.py", line 25
target = today + os.sep + now + '_' +
^
SyntaxError: invalid syntax
?????????????Python????????????????¦Æ??????????Python???????????????????Python?????????????????????????????????????¦Ë?¨¢?????????????§á?? ???? ????????
????????????????????????§Ò???????????????§µ??????????????????????????????????????§³????????Python????????????????????????????????¦Ê¦Â?????????????????????¦Ì????????????????????????¦Â???§Ò??????????????????????§Þ?????????????????????????????????
#!/usr/bin/python
# Filename: backup_ver4.py
import os
import time
# 1. The files and directories to be backed up are specified in a list.
source = ['/home/swaroop/byte', '/home/swaroop/bin']
# If you are using Windows, use source = [r'C:\Documents', r'D:\Work'] or something like that
# 2. The backup must be stored in a main backup directory
target_dir = '/mnt/e/backup/' # Remember to change this to what you will be using
# 3. The files are backed up into a zip file.
# 4. The current day is the name of the subdirectory in the main directory
today = target_dir + time.strftime('%Y%m%d')
# The current time is the name of the zip archive
now = time.strftime('%H%M%S')
# Take a comment from the user to create the name of the zip file
comment = raw_input('Enter a comment --> ')
if len(comment) == 0: # check if a comment was entered
target = today + os.sep + now + '.zip'
else:
target = today + os.sep + now + '_' + \
comment.replace(' ', '_') + '.zip'
# Notice the backslash!
# Create the subdirectory if it isn't already there
if not os.path.exists(today):
os.mkdir(today) # make directory
print 'Successfully created directory', today
# 5. We use the zip command (in Unix/Linux) to put the files in a zip archive
zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))
# Run the backup
if os.system(zip_command) == 0:
print 'Successful backup to', target
else:
print 'Backup FAILED'
????????code/backup_ver4.py??
$ python backup_ver4.py
Enter a comment --> added new examples
Successful backup to /mnt/e/backup/20041208/082156_added_new_examples.zip
$ python backup_ver4.py
Enter a comment -->
Successful backup to /mnt/e/backup/20041208/082316.zip
??????????????????????????¡ã·Ú??????????????????????????raw_input??????????????????????len???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????????????????????????????zip?ùr????????.zip?????????????????????§Ö????�I???????????????????????????????????????
??????????????????????·Ú?????????????????????????????§ß??????????????íà???????????§Ñ??? ???? ?????????????-v?????????????????????
????????????????????????????????????????????????????????sys.argv?§Ò????????????????????????list??????extend????????????source?§Ò??????
???????§Ö????????????tar???????zip???þŸ??????????????????????????tar??gzip?????????????????§³????????????Windows???????§»?ùr??WinZip????????????§».tar.gz?????tar??????????Linux/Unix???§Ø???????????Windows???????????????????
???????????????????
tar = 'tar -cvzf %s %s -X /home/swaroop/excludes.txt' % (target, ' '.join(srcdir))
?????????¡ê?
-c???????????ùr??
-v????????????????????????
-z??????gzip???????
-f???????????ùr????????????????????????????�I??
-X????????????????§Ò??§Ö????????????????????íà???????????????*~?????????????????????~??¦Â???????
???
????????????§»?ùr????????????zipfile??tarfile????????Python?????????????????????¨¢??????§»???????????os.system???????????????????????????????????
?????????????????os.system?????????????????????????????????????????????????????????????????????????????????
| ???? | ????? | ???? |
|---|---|---|
| ???? | ??? | ??????????? |