01.运行路径【绝对路径与相对路径】
绝对路径:总是从根文件夹开始,Window 系统中以盘符(C:、D:)作为根文件夹,而 OS X 或者 Linux 系统中以 / 作为根文件夹。
— windows中采用反斜杠\作为文件夹之间的分隔符;
— Mac和Linux中采用斜杠/作为文件之间的分隔符;
— 反斜杠字python中用于转义,所以用是需要注意;
相对路径:指的是文件相对于当前工作目录所在的位置。【以参照点】
— 在使用相对路径表示某文件所在的位置时,除了经常使用 .\ [./]表示当前所在目录之外,还会用到 ..\ 表示当前所在目录的上级目录。
例:
python 路径加载连接的三种方式:/、 \ 、 r
import os
import pandas as pd
path = r'C:/电影/好看的电影/小电影' # 建议加上r养成习惯
os.chdir(path) # 建议路径不要直接参数内,用变量代替
data = pd.read_excel("葫芦娃.mp4") # 等同于("./葫芦娃.mp4")
print(data)
其中'C:/电影/好看的电影/小电影'为绝对路径, 葫芦娃.mp4为相对路径
02.os操作之获取路径方法
1.【os.path.abspath】把路径变为绝对路径
实例:
import os # 导入os模块
a = os.path.abspath('.') # 把当前路径转化为绝对路径
print(a)
# 输出 —— C:\Users\Administrator\Desktop\py_learn
aa = os.path.abspath('..') # 把上级目录路径转化为绝对路径
print(aa) # 输出 —— C:\Users\Administrator\Desktop
★★ 输出完整路径
import os # 导入os模块
a = os.path.abspath(__file__) # 转化为完整路径
print(a) # 输出 —— C:\Users\Administrator\Desktop\py_learn\测试.py
2.【os.path.isabs】判断是否为绝对路径
实例:
import os # 导入os模块
b = os.path.isabs('.') # 判断'.'是否是绝对路径
print(b) # 输出——False
bb = os.path.isabs(os.path.abspath('.')) # os.path.abspath('.')已转为绝对path,遂结果是True
print(bb)
3.【os.chdir】指定程序工作路径
特点:用于获取一个文件时,可以用绝对路径指定,但一下子获取一个文件内几十个文件,就可以改变程序的运行路径,从而快速获取文件。
os.chdir — 用于改变当前程序的工作路径到指定的路径。程序的实际路径没有改。
案例:
import pandas
import os #导入os模块
path = r'C:\Users\Administrator\Desktop'
os.chdir(path) # 把程序的工作路径修改到桌面
print(os.getcwd()) # 查看新路径 # 输出 — C:\Users\Administrator\Desktop
a= os.listdir() # 获取桌面上所有文件,并赋值给变量a
print(a) # 打印查看所有文件
4.【os.path.dirname】去掉文件名,返回目录
(1)当" os.path.dirname(path)"所在path是以完整路径被运行的, 那么将输出该脚本所在的绝对路径,比如:
import os
a = os.path.dirname(r'C:\Users\Administrator\Desktop\py_learn\测试.py')
print(a) # 输出—C:\Users\Administrator\Desktop\py_learn
b = os.path.dirname(__file__)
print(b) # 输出—C:\Users\Administrator\Desktop\py_learn
# 效果等同于os.getcwd
(2)当"print os.path.dirname(path)"所在脚本是以相对路径被运行的, 那么将输出空目录,比如:
a = os.path.dirname('测试.py')
print(a) # 输出 — 空白
5.【os.path.basename】返回文件名称
返 path最后的文件名。如果path以/或\结尾,那么就会返回空值。
案例:
import os
a=os.path.basename(r'C:\Users\Administrator\Desktop\py_learn\测试.py')
print(a) # 输出 — 测试.py
b=os.path.dirname('测试.py')
print(b) # 输出 — 空
6.【os.path.split】按照路径将文件名和路径分割开
语法:os.path.split(path)
# 就是os.path.dirname()和os.path.basename()的集合,将它们的返回值放在一个元组中,从而得到同样的元组。
1.path指一个文件的全路径作为参数:
2.如果给出的是一个目录和文件名,则输出路径和文件名
3.如果给出的是一个目录名,则输出路径和最后的目录名
返回:元祖 (路径,文件名)
案例:
import os #导入os模块
a=os.path.split(r'C:\Users\Administrator\Desktop\py_learn\测试.py')
print(a) # 输出— ('C:\\Users\\Administrator\\Desktop\\py_learn','测试.py')
b=os.path.split(r'C:\Users\Administrator\Desktop\py_learn')
print(b) # 输出— ('C:\\Users\\Administrator\\Desktop','py_learn')
7.【os.path.splitext】将文件名和扩展名分开
语法:os.path.split(path)
# 就是os.path.dirname()和os.path.basename()的集合,将它们的返回值放在一个元组中,从而得到同样的元组。
1.path指一个文件的全路径作为参数:
2.如果给出的是一个目录和文件名,则输出路径和文件名
3.如果给出的是一个目录名,则输出路径和空
返回:元祖 (路径,扩展名)
案例:
import os # 导入os模块
a=os.path.splitext(r'C:\Users\Administrator\Desktop\py_learn\测试.py')
print(a) # 输出— ('C:\\Users\\Administrator\\Desktop\\py_learn\\测试','.py')
b=os.path.splitext(r'C:\Users\Administrator\Desktop\py_learn')
print(b) # 输出— ('C:\\Users\\Administrator\\Desktop\\py_learn','')
8.【os.getcwd】获得当前程序运行路径
2020年6月17日
9:01
运行程序在哪,得到的就是哪的目录[绝对路径]
案例:
import os
print(os.getcwd())
# C:\Users\Administrator\Desktop\py_learn
03.路径连接
os.path.join()函数:连接两个或更多的路径名组件;
— 如果各组件名首字母不包含’\’,则函数会自动加上;
— 以第一个”\”开头的参数开始拼接,之前的参数全部丢弃,当有多个时,从最后一个开始;[有\表示是盘符根目录]
— 如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾;
语法:os.path.join(p1,p2 …)
返回值: 组合后的路径
案例:
import os
P1 = '\电影'
P2 = '好看的电影'
P3 = '小电影'
path1=P1+'/'+P2+'/'+P3 # 用起来很麻烦,不推荐
path2 = os.path.join(P1,P2,P3) # 操作方便
print('c:',path1) # c: \电影/好看的电影/小电影
print('c:',path2) # c: \电影\好看的电影\小电影