llcong 发表于 2015-12-2 11:18:26

[Python] 目录和文件操作

    在Linux系统下用Python写脚本,肯定不能避免各种与目录和文件夹有关的操作。为了以后方便查阅,简单地针对Python中与目录和文件夹有关的操作进行汇总。
    需要实现导入的模块为: import os

1. 得到当前工作目录,即当前Python脚本工作的目录路径:
    path=os.getcwd()
    在这里引用一个比较好的例子,来源于:牛皮糖的旅程
    我们将abc.py放入A文件夹。并且希望不管将A文件夹放在硬盘的哪个位置,都可以在A文件夹内生成一个新文件夹。且文件夹的名字根据时间自动生成。



import os
import time
folder = time.strftime(r"%Y-%m-%d_%H-%M-%S",time.localtime())
os.makedirs(r'%s/%s'%(os.getcwd(),folder))
2. 返回指定目录下的所有文件和目录名:
    os.listdir()

3. 判断一个路径(目录或文件)是否存在:
    b = os.path.exists("路径")——返回值b:True 或 False

4. 判断一个路径是否文件:
    b = os.path.isfile("路径")——返回值b:True 或 False

5. 判断一个路径是否目录:
    b = os.path.isdir("路径")——返回值b: True 或 False

6. 创建子目录:
    os.makedirs(path)——path是"要创建的子目录"
    调用有可能失败,可能的原因是:
    (1) path 已存在时(不管是文件还是文件夹);
    (2) 驱动器不存在;
    (3) 磁盘已满;
    (4)磁盘是只读的或没有写权限。

7. 删除子目录:
    os.rmdir(path)——path: "要删除的子目录"
    产生异常的可能原因:
    (1) path 不存在;
    (2) path 子目录中有文件或下级子目录;
    (3) 没有操作权限或只读。
    shutil.rmtree(path)——空目录、有内容的目录都可以删

8. 删除文件:
    os.remove(filename)——filename: "要删除的文件名"
    产生异常的可能原因:
    (1) filename 不存在;
    (2) 对filename文件,没有操作权限或只读。

9. 文件改名:
    os.name(oldfileName, newFilename)
    产生异常的原因:
    (1) oldfilename 旧文件名不存在;
    (2) newFilename 新文件已经存在时,需要先删除 newFilename 文件。

10. 获取文件大小:
    os.path.getsize(filename)

11. 将一个路径名分解为目录名和文件名两部分:
    fpath , fname = os.path.split("路径")
    例如:
      a, b = os.path.split( "c:\\123\\456\\test.txt" )
      print a
      print b
      显示:
      c:\123\456
      test.txt

12. 分解文件名的扩展名:
    fpathandname , fext = os.path.splitext("路径")
    例如:
      a, b = os.path.splitext( "c:\\123\\456\\test.txt" )
      print a
      print b
    显示:
      c:\123\456\test
      .txt
  
页: [1]
查看完整版本: [Python] 目录和文件操作