[Python] 目录和文件操作

时间:2022-11-08 06:11:39

  在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