python isdir(name) isfile(name) name需要是绝对路劲

来源:互联网 发布:lol刷皮肤软件 编辑:程序博客网 时间:2024/06/08 07:33

这篇文章主要介绍了Python os模块中的isfile()和isdir()函数均返回false问题解决方法,返回false的原因是路径使用了相对路径,使用绝对路径就可以解决这个问题,需要的朋友可以参考下

当用os.path.isdir()来判断的时候,发现所有文件均返回false,发现用os.path.isfile(),这些文件还是返回false,这肯定就是程序写的有问题了,代码如下:

import osDirectory=raw_input("Please enter directory you want to backup:")  dirs=os.listdir(Directory)for filename in dirs:  if os.path.isdir(filename):    os.system("tar czvf "+filename+".tar.gz "+filename)

经过仔细排查,在上面的for/in循环中,filename实际上只是一个文件名。测试发现,当我使用os.path.isdir(目录的绝对路径)的时候,返回的才是true,也就是说,python的isdir()并不像php的is_dir()那样,可以使用当前工作目录的相对路径,那么这里怎么样去改进这个备份文件呢?幸好python提供了一个os.path.join()函数,自动来把需要的路径加到一块,而不用担心手动把路径字符串连接起来时,产生多余的”/”的问题,那么这个备份脚本可以这样写:

import osDirectory=raw_input("Please enter directory you want to backup:")  dirs=os.listdir(Directory)for filename in dirs:  fulldirfile=os.path.join(Directory,filename)  if os.path.isdir(fulldirfile):    os.system("tar czvf "+fulldirfile+".tar.gz "+fulldirfile)
原创粉丝点击