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: \电影\好看的电影\小电影