Python os模块中的isfile()和isdir()函数均返回false问题解决方法


Posted in Python onFebruary 04, 2015

今天在写一个linux下自动备份指定目录下的所有目录的脚本时,遇到了一个问题,由于我是需要备份目录,所以,需要判断扫描的文件是否为目录,当我用os.path.isdir()来判断的时候,发现所有文件均返回false,刚开始以为是系统兼容性问题,进一步测试,发现用os.path.isfile(),这些文件还是返回false,这肯定就是程序写的有问题了,代码如下:

#!/usr/bin/env python
# a python script to auto backup a directory's file by Hito
import os
Directory=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()函数,自动来把需要的路径加到一块,而不用担心手动把路径字符串连接起来时,产生多余的”/”的问题,那么这个备份脚本可以这样写:

#!/usr/bin/env python
# a python script to auto backup a directory's file by Hito
import os
Directory=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)
Python 相关文章推荐
Python3读取UTF-8文件及统计文件行数的方法
May 22 Python
python清除指定目录内所有文件中script的方法
Jun 30 Python
python实现FTP服务器服务的方法
Apr 11 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
Jul 12 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
Jul 06 Python
Python 过滤错误log并导出的实例
Dec 26 Python
Python使用itcaht库实现微信自动收发消息功能
Jul 13 Python
Python自动创建Excel并获取内容
Sep 16 Python
python实现录音功能(可随时停止录音)
Oct 26 Python
教你漂亮打印Pandas DataFrames和Series
May 29 Python
openstack中的rpc远程调用的方法
Jul 09 Python
Python中Numpy和Matplotlib的基本使用指南
Nov 02 Python
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
Feb 04 #Python
Python、Javascript中的闭包比较
Feb 04 #Python
线程和进程的区别及Python代码实例
Feb 04 #Python
Python中使用PIPE操作Linux管道
Feb 04 #Python
Python实现在Linux系统下更改当前进程运行用户
Feb 04 #Python
使用Python编写Linux系统守护进程实例
Feb 03 #Python
Python中使用select模块实现非阻塞的IO
Feb 03 #Python
You might like
php程序内部post数据的方法
2015/03/31 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
js转化毫秒为时间格式代码
2014/04/10 Javascript
jquery实现类似淘宝星星评分功能有截图
2014/09/15 Javascript
JS返回只包含数字类型的数组实例分析
2016/12/16 Javascript
简单理解js的冒泡排序
2016/12/19 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
vue项目中使用scss的方法步骤
2019/05/16 Javascript
vue+elementUI实现图片上传功能
2019/08/20 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
微信小程序 接入腾讯地图的两种写法
2021/01/12 Javascript
Python的Tornado框架异步编程入门实例
2015/04/24 Python
python中lambda与def用法对比实例分析
2015/04/30 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
python email smtplib模块发送邮件代码实例
2018/04/26 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
GafasWorld西班牙:购买太阳镜、眼镜和隐形眼镜
2019/09/08 全球购物
香港零食网购:上仓胃子
2020/06/08 全球购物
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
软件测试面试题
2015/10/21 面试题
自我评价中英文语句
2013/11/30 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
武当山导游词
2015/02/03 职场文书
幼儿园中班教师个人工作总结
2015/02/06 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL