���� 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
���ڣ������Ѿ��������������ˣ���������ڣ����Dz������ǵij����Ƿ���ȷ������������������������IJ�һ�������Ǿ͵��������ǵij������������е� 覴� ������
�������㽫����������ΰ� ��� һ��һ����ת��Ϊ ���� ��
����ʹ����os
��time
ģ�飬���������������ǡ�Ȼ��������source
�б���ָ����Ҫ���ݵ��ļ���Ŀ¼��Ŀ��Ŀ¼��������Ҫ�洢�����ļ��ĵط�������target_dir
����ָ����zip�鵵��������Ŀǰ�����ں�ʱ�䣬����ʹ��time.strftime()
��������������.zip
��չ��������������target_dir
Ŀ¼�С�
time.strftime()
������Ҫ����������ij�����ʹ�õ����ֶ��ơ�%Y
�ᱻ�����͵�����������%m
�ᱻ01��12֮���һ��ʮ�����·�������������������ơ���Щ���Ƶ���ϸ��������ڡ�Python�ο��ֲᡷ�л�á���Python�ο��ֲᡷ���������Python���а��С�ע����Щ����������print
���Ķ��ƣ�%
���һ��Ԫ�飩���ƣ�������ȫ��ͬ��
����ʹ�üӷ��������� ���� �ַ��������������ַ���������һ��һ���µ��ַ�����ͨ�����ַ�ʽ�����Ǵ�����Ŀ��zip�ļ������ơ��������Ǵ�����zip_command
�ַ��������������ǽ�Ҫִ�е�����������shell��Linux�ն˻���DOS��ʾ���������������Լ������Ƿ�����
zip������һЩѡ��Ͳ�����-q
ѡ��������ʾzip����������������-r
ѡ���ʾzip�����Ŀ¼�ݹ������������������Ŀ¼�Լ���Ŀ¼�е��ļ�������ѡ�������ϳ���д��ʽ-qr
��ѡ�������Ŵ�������zip�鵵�����ƣ�Ȼ�����Ǵ����ݵ��ļ���Ŀ¼�б�������ʹ���Ѿ�ѧϰ�����ַ���join
������source
�б�ת��Ϊ�ַ�����
�������ʹ��os.system
���� ���� ���������������ͺ����� ϵͳ ����������һ��������shell������������������ɹ����У�������0�����������ش���š�
�����������������Ǵ�ӡ��Ӧ����Ϣ����ʾ�����Ƿ��ɹ������ˣ��������������Ѿ�������һ���ű��������ǵ���Ҫ�ļ������ݣ�
��Windows�û���ע��
�����source
���target
Ŀ¼���ó��κ��ļ���Ŀ¼����������Windows�����С��һЩ��������Windows�ѷ�б�ܣ�\����ΪĿ¼�ָ�������Python�÷�б�ܱ�ʾת�����
���ԣ����ʹ��ת�������ʾ��б�ܱ�������ʹ����Ȼ�ַ��������磬ʹ��'C:\\Documents'
��r'C:\Documents'
������'C:\Documents'
��������ʹ��һ����֪����ת���\D
��
���������Ѿ�����һ�����Թ����ı��ݽű������ǿ������κ�������Ҫ�����ļ����ݵ�ʱ��ʹ����������Linux/Unix�û�ʹ��ǰ����ܵ���ִ�еķ����������Ϳ������κεط��κ�ʱ�����б��ݽű��ˡ��ⱻ��Ϊ������ʵʩ���ڻ��������ڡ�
����ij��������ȷ���������ǣ�ͨ������һ����������������������ȫһ�������磬������Щ������û�����ǡ�����ֻ���������������ʱ������һ����ȵȡ���������£���Ӧ�ûص���ƻ��ڻ��ߵ��Գ���
��һ���汾�Ľű����Թ�����Ȼ�������ǿ��Զ�����Щ�Ż��Ա����������ǵ��ճ������б�ø��á����Ϊ������ά�����ڡ�
����Ϊ�Ż�֮һ�Dz��ø��õ��ļ������ơ���ʹ�� ʱ�� ��Ϊ�ļ���������ǰ�� ���� ��ΪĿ¼���������������Ŀ¼�С���������һ����������ı��ݻ��Եȼ��ṹ�洢������������������ˡ�����һ���������ļ����ij���Ҳ���Ա�̡�����һ�������Dz��ø��Զ������ļ��п������㷽��ؼ������Ƿ���ÿһ�촴���˱��ݣ���Ϊֻ�����㴴���˱��ݣ��Ż���������Ŀ¼��
#!/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
��������Ĵ�����ͬ�ġ��ı�IJ�����Ҫ��ʹ��os.exists
����������������Ŀ¼���Ƿ����Ե�ǰ������Ϊ���Ƶ�Ŀ¼�����û�У�����ʹ��os.mkdir
����������
ע��os.sep
�������÷�������������IJ���ϵͳ����Ŀ¼�ָ���������Linux��Unix������'/'
����Windows������'\\'
������Mac OS������':'
��ʹ��os.sep
����ֱ��ʹ���ַ�����ʹ���ǵij��������ֲ�ԣ�������������Щϵͳ�¹�����
�ڶ����汾�������϶౸�ݵ�ʱ�����ò�������������м��౸�ݵ�ʱ���ҷ���Ҫ����ÿ�������Ǹ�ʲô�ģ�����ʮ�����ѣ����磬�ҿ��ܶԳ�������ݽ�������һЩ��Ҫ�ĸı䣬��������Ҫ����Щ�ı���zip�鵵��������ϵ�����������ͨ����zip�鵵���ϸ���һ���û��ṩ��ע���������ʵ�֡�
��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�����Ĵ����ʱ����Ҳ���������������������λ�á��������Ǵ����п�ʼ ���� ���ǵij���
ͨ����ϸ�Ĺ۲죬���Ƿ���һ�����б��ֳ������������У��������Dz�û��ָ������������������ͬһ���С������ϣ�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
�����ҳ�����ij����Լ����û��Ƿ�ȷʵ������ʲô����������û�ֻ�ǰ����س���������ֻ��һ���������ݣ�û����ʲô�ر���ģ�����ô���Ǿ���֮ǰ��������������
Ȼ��������ṩ��ע�ͣ���ô���ᱻ���ӵ�zip�鵵��������.zip
��չ��֮ǰ��ע�����ǰ�ע���еĿո��滻���»��ߡ���������Ϊ�����������ļ���Ҫ���öࡣ
���ڴ�����û���˵�����ĸ��汾��һ������Ĺ����ű��ˣ���������Ȼ�н�һ���Ľ��Ŀռ䡣���磬������ڳ����а��� ���� �̶ȡ����������-v
ѡ����ʹ��ij�����߽����ԡ�
��һ�����ܵĸĽ���ʹ�ļ���Ŀ¼�ܹ�ͨ��������ֱ�Ӵ��ݸ��ű������ǿ���ͨ��sys.argv
�б�����ȡ���ǣ�Ȼ�����ǿ���ʹ��list
���ṩ��extend
���������Ǽӵ�source
�б���ȥ��
�һ�ϣ���е�һ���Ż���ʹ��tar�������zip�����������һ��������������ʹ��tar��gzip�����ʱ���ݻ�����С���������Ҫ��Windows��ʹ����Щ�鵵��WinZipҲ�ܷ���ش�����Щ.tar.gz
�ļ���tar�����ڴ����Linux/Unixϵͳ�ж���Ĭ�Ͽ��õġ�Windows�û�Ҳ����������װ����
�����ַ������ڽ���Ϊ��
tar =
'tar -cvzf %s %s -X /home/swaroop/excludes.txt'
% (target,
' '
.join(srcdir))
ѡ��������£�
-c
��ʾ����һ���鵵��
-v
��ʾ��������������߽����ԡ�
-z
��ʾʹ��gzip�˲�����
-f
��ʾǿ�������鵵��������Ѿ���һ��ͬ���ļ������ᱻ�滻��
-X
��ʾ����ָ���ļ����б��е��ļ��ᱻ�ų��ڱ���֮�⡣���磬��������ļ���ָ��*~
���Ӷ����ñ��ݰ���������~
��β���ļ���
��Ҫ
������Ĵ�����Щ�鵵�ķ����Ƿֱ�ʹ��zipfile
��tarfile
��������Python�����һ���֣����Թ���ʹ�á�ʹ����Щ��ͱ�����ʹ��os.system
������Ƽ�ʹ�õĺ������������������صĴ���
Ȼ�������ڱ�����ʹ��os.system
�ķ������������ݣ��ⴿ����Ϊ�˽�ѧ����Ҫ�������Ļ������ӾͿ��Լ���ÿ���˶��ܹ����⣬ͬʱҲ�Ѿ��㹻���ˡ�
��һҳ | ��һ�� | ��һҳ |
---|---|---|
���� | ��ҳ | ������������ |