在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