0 使用方式选择
功能需求 |
推荐模块 |
|
注释 |
读写文件 |
内置函数 |
open() |
|
路径相关 |
os 模块 |
os.path |
+ 强大的可移植性 + 不能将os解包,会覆盖open() |
逐行读取多个文件 |
fileinput 模块 |
|
|
创建临时文件或路径 |
tempfile 模块 |
|
|
进行更高级文件路径操作 |
shutil 模块 |
|
0.1 各种常用返回值
0.1.1 返回文件的信息
import os
# ----------------- <返回文件的绝对路径> ----------------- #
a = os.path.realpath(__file__) # ----当前文件的绝对路径
a = os.__file__ # ----------------------指定包的绝对路径
# --------------- <返回文件的父文件夹路径> --------------- #
b = os.path.split(a)[0] # -----------------------方法一
c = os.path.dirname(a) # -----------------------方法二
1 os 模块
os就是“operating system”的缩写,顾名思义,os模块提供的就是各种 Python 程序与操作系统进行交互的接口。os 模块提供了非常丰富的方法用来处理文件和目录。
1.1 常用功能(不常用,暂不学)
Python OS 文件/目录方法 | 菜鸟教程
python中os模块详解_python标准库OS模块详解_weixin_39847099的博客-CSDN博客
1.1.1 常用方法/函数
方法/函数 |
说明 |
os.getcwd() |
返回当前Python脚本工作的目录路径 |
os.listdir() |
返回指定目录下的所有文件和目录名 |
1.1.2 常用属性
属性 |
说明 |
返回值 |
注释 |
name |
返回 python 运行所在环境 |
posix :Linux/Mac os
nt :Windows
java :Java 虚拟机 |
+ <font style="color:rgb(77, 77, 77);">sys.platform</font> 可获得更多信息; |
environ |
返回环境相关的信息 |
一个映射 |
+ 不会,看不懂 |
1.2 os.path 模块
os.path 模块主要用于获取文件的属性,是用来处理包含路径分隔符的模块。
斜杠 |
/ |
linux 系统下的路径分隔符 |
反斜杠 |
\ |
windows 系统下的路径分隔符 |
Python os.path() 模块 | 菜鸟教程
1.2.1 常用方法/函数
使用次数 |
方法/函数 |
说明 |
|
代码 |
返回 |
|
注释 |
|
basename(path) |
提取 |
文件名 |
os.path.basename('a/b/c.txt') |
字符串 |
c.txt |
|
|
dirname(pathname) |
|
目录路径 |
os.path.dirname('a/b/c.txt') |
|
a/b |
|
|
|
os.path.join('a/b/c') |
|
a/b/c |
|
|
|
|
|
os.path.join('a/b/') |
|
a/b/ |
|
|
|
|
abspath(path) |
|
绝对路径生成函数,支持特殊路径 |
os.path.abspath('.') |
未测试 |
|
|
|
|
os.path.abspath('..') |
|
|
|
|
|
|
|
os.path.abspath('c.txt' |
|
|
|
|
|
1 |
realpath(path) |
|
把路径分割符按照操作系统替换 |
print(__file__)
os.path.normpath(__file__) |
|
|
|
1 |
join(path1, path2, ...) |
合并 |
把所有参数合并成一个路径字符串 |
os.path.join('a', 'b', 'c.txt') |
|
a/b/c.txt |
|
|
|
|
|
os.path.join('a', 'b', 'c') |
|
a/b/c |
+ path.join + sys.path 用法 |
1 |
split(path) |
分割 |
路径和文件名,即最后一个/ 左右两部分 |
os.path.split('a/b/c.txt') |
元组 |
('a/b', 'c.txt') |
|
|
|
|
|
os.path.split('a/b/c') |
|
('a/b', 'c') |
|
|
|
|
|
os.path.split('a/b/') |
|
('a/b/', '') |
|
|
splitext(path) |
|
扩展名分隔符,即最后一个. 左右两部分 |
os.path.splitext('a/b/c.txt') |
|
('a/b/c', '.txt') |
|
|
|
os.path.splitext('a/b/c') |
|
('a/b/c', '') |
|
|
|
|
splitdrive(path) |
|
驱动名分隔符,即第二个字符必须是/ |
未测试 |
|
|
|
|
exists(path) |
判断 |
文件路径路径是否存在 |
os.path.exists('a', 'b', 'c.txt') |
布朗值 |
未测试 |
|
|
isfile(path) |
|
文件路径是否是一个文件 |
os.path.isfile('a', 'b', 'c.txt') |
|
|
|
|
isdir(path) |
|
文件路径是否是一个目录 |
os.path.isdir('a', 'b', 'c.txt') |
|
|
|
|
islink(path) |
|
文件路径是否是一个链接符号 |
os.path.islink('a', 'b', 'c.txt') |
|
|
|
|
isabs(path) |
|
文件路径是否是一个绝对路径 |
os.path.isabs('a', 'b', 'c.txt') |
|
|
|
|
ismount(path) |
|
文件路径是否是一个挂载点 |
os.path.ismount('a', 'b', 'c.txt') |
|
|
1.2.2 属性
使用次数 |
属性 |
说明 |
|
返回 |
|
注释 |
|
lexists |
判断 |
路径是否存在 |
布朗值 |
True /False |
+ 参考exists(path) 方法; |
2 sys 模块
2.1 常用功能(不常用,积累中)
2.1.1 常用方法/函数
2.1.2 属性
path = os.path.join(sys.path[1], '') + 'source\\img\\'
# sys.path[1]可以返回项目路径