python import 路径_Python 3 教程二:文件,目录和路径

import

os

import

shutil

import

datetime

'''

作用:将目录备份到其他路径。

实际效果:

假设给定目录"/media/data/programmer/project/python" ,

备份路径"/home/diegoyun/backup/“ ,

则会将python目录备份到备份路径下,形如:

/home/diegoyun/backup/yyyymmddHHMMSS/python/xxx/yyy/zzz

dot.gif..

用法:更改这两个参数.

backdir:备份目的地.

copydirs:想要备份的文件夹.

'''

def

mainLogic():

#

add dirs you want to copy

backdir

=

"

d:\\test

"

print

(backdir)

copydirs

=

[]

copydirs.append(

"

d:\\temp

"

);

#

copydirs.append("d:\\test");

print

(

"

Copying files  ===================

"

)

start

=

datetime.datetime.now()

#

gen a data folder for backup

backdir

=

os.path.join(backdir,start.strftime(

"

%Y-%m-%d

"

))

#

print("backdir is:"+backdir)

kc

=

0

for

d

in

copydirs:

kc

=

kc

+

copyFiles(d,backdir)

end

=

datetime.datetime.now()

print

(

"

Finished! ===================

"

)

print

(

"

Total files :

"

+

str(kc) )

print

(

"

Elapsed time :

"

+

str((end

-

start).seconds)

+

"

seconds

"

)

def

copyFiles(copydir,backdir):

prefix

=

getPathPrefix(copydir)

#

print("prefix is:"+prefix )

i

=

0

for

dirpath,dirnames,filenames

in

os.walk(copydir):

for

name

in

filenames:

oldpath

=

os.path.join(dirpath,name)

newpath

=

omitPrefix(dirpath,prefix)

print

(

"

backdir is:

"

+

backdir )

newpath

=

os.path.join(backdir,newpath)

print

(

"

newpath is:

"

+

newpath)

if

os.path.exists(newpath)

!=

True:

os.makedirs(newpath)

newpath

=

os.path.join(newpath,name)

print

(

"

From:

"

+

oldpath

+

"

to:

"

+

newpath)

shutil.copyfile(oldpath,newpath)

i

=

i

+

1

return

i

def

getPathPrefix(fullpath):

#

Giving /media/data/programmer/project/ , get the prefix

#

/media/data/programmer/

l

=

fullpath.split(os.path.sep)

#

print(str(l[-1]=="")

if

l[

-

1

]

==

""

:

tmp

=

l[

-

2

]

else

:

tmp

=

l[

-

1

]

return

fullpath[0:len(fullpath)

-

len(tmp)

-

1

]

def

omitPrefix(fullpath,prefix):

#

Giving /media/data/programmer/project/python/tutotial/file/test.py ,

#

and prefix is Giving /media/data/programmer/project/,

#

return path as python/tutotial/file/test.py

return

fullpath[len(prefix)

+

1

:]

mainLogic()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值