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 相关文章推荐
python logging重复记录日志问题的解决方法
Jul 12 Python
Python读取txt内容写入xls格式excel中的方法
Oct 11 Python
Python之pymysql的使用小结
Jul 01 Python
django和vue实现数据交互的方法
Aug 21 Python
opencv调整图像亮度对比度的示例代码
Sep 27 Python
Python函数的定义方式与函数参数问题实例分析
Dec 26 Python
Python tkinter布局与按钮间距设置方式
Mar 04 Python
python 获取字典特定值对应的键的实现
Sep 29 Python
Python常用外部指令执行代码实例
Nov 05 Python
python基于opencv批量生成验证码的示例
Apr 28 Python
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
May 12 Python
python神经网络学习 使用Keras进行简单分类
May 04 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获取数组长度的方法(有实例)
2013/10/27 PHP
php版阿里云OSS图片上传类详解
2016/12/01 PHP
根据出生日期自动取得星座的js代码
2010/07/20 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
2010/09/15 Javascript
关于jQuery新的事件绑定机制on()的使用技巧
2013/04/26 Javascript
JavaScript获取onclick、onchange等事件值的代码
2013/07/22 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
jQuery操作cookie方法实例教程
2014/11/25 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
基于layui数据表格以及传数据的方式
2018/08/19 Javascript
使用Python开发SQLite代理服务器的方法
2018/12/07 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
python3实现钉钉消息推送的方法示例
2019/03/14 Python
Django ImageFiled上传照片并显示的方法
2019/07/28 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
浅析python标准库中的glob
2020/03/13 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
Python内置函数及功能简介汇总
2020/10/13 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
C语言面试题
2013/05/19 面试题
开门红主持词
2014/04/02 职场文书
护理医院见习报告
2014/11/03 职场文书
2014酒店客房部工作总结
2014/12/16 职场文书
2015年入党决心书
2015/02/05 职场文书
夫妻吵架保证书
2015/05/08 职场文书
Python预测分词的实现
2021/06/18 Python
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏