Python文件路径常用操作

1 文件路径

在进行数据处理时,经常要用代码去读文件里的数据,那么首先就得知道这个文件的文件路径。文件路径简单地说就是文件的存放位置。文件路径分为两块:文件夹路径和文件名,文件名又分为文件基本名和扩展名。

举例说明:

'/Users/Desktop/data.csv'

其中,

'/Users/Desktop/' 为文件夹路径

'Data' 为文件基本名

'.csv'为文件扩展名。

2 常用操作

2.1 文件路径创建

关键函数:makedirs()------创建新文件夹(目录)

python 复制代码
import os
path = "/Users/Desktop/python_code/My_project/get_path/new"
os.makedirs(path)

2.2 文件路径获取

获取文件路径有以下几种场景:1、 获取当前工作路径;2、 获取其它文件路径,其它文件路径又可以是一个也可以是多个。

2.2.1 获取当前工作路径

关键函数:getcwd()

python 复制代码
#获取当前工作目录
import os
path = os.getcwd() #获取当前工作目录文件夹路径
name = 'data' #文件名
expanded_name = '.csv' #文件扩展名
file_path = os.path.join(path,name+expanded_name)#文件路径拼接
print(file_path)

运行结果如下:

python 复制代码
/Users/Desktop/python_code/My_project/get_path/data.csv

2.2.2 获取一个文件路径

获取其它文件路径的方式有两种,一种是在代码里面直接输入,另一种是采用弹框的形式,手动选择文件夹或者文件。

① 直接在代码里输入路径

python 复制代码
#获取一个文件-输入文件路径
path = '/Users/Desktop/python_code/My_project/get_path' #输入文件夹路径
name = 'data' #文件名
expanded_name = '.csv' #文件扩展名
file_path = os.path.join(path,name+expanded_name) #路径拼接
print(file_path)

运行结果如下:

python 复制代码
/Users/Desktop/python_code/My_project/get_path/data.csv

② 弹框选择文件夹或者文件

弹框选择文件夹:

python 复制代码
#弹框选择文件夹
import os
import tkinter as tk
from tkinter import filedialog
window = tk.Tk()
window.title('请选择文件夹')
file_path = filedialog.askdirectory() #选择目标文件夹
name = 'data' #文件名
expanded_name = '.csv' #文件扩展名
file_path = os.path.join(file_path,name+expanded_name)
print(file_path)

弹框选择文件:

python 复制代码
#弹框选择目标文件
import tkinter as tk
from tkinter import filedialog
window = tk.Tk()
window.title('请选择目标文件')
file_path = filedialog.askopenfilename() #选择目标文件
print(file_path)

2.2.3 获取多个文件路径

在实际应用中更多的是需要获取多个文件路径,这其中的关键是获取到文件夹里的所有文件,然后再逐一处理。

方法一:

python 复制代码
import os
from glob import glob
path = '/Users/Desktop/python_code/My_project/get_path' #文件夹路径,输入或者弹框的形式获取
expanded_name = '.csv' #文件扩展名
file_paths = glob(os.path.join(path,'*' + expanded_name + '*')) #获取所有.csv的文件
file_paths.sort() #按照文件名排序
for i in range(len(file_paths)):
    print(file_paths[i])

方法二:

python 复制代码
import os
path = '/Users/Desktop/python_code/My_project/get_path' #文件夹路径,输入或者弹框的形式获取
expanded_name = '.csv' #文件扩展名
all_file_names = os.listdir(path) #显示所有文件名
file_paths = []
for i in range(len(all_file_names)):
    if expanded_name in all_file_names[i]:
        file_paths.append(os.path.join(path,all_file_names[i])) #筛选出目标扩展名的文件
file_paths.sort() #按照文件名排序
for i in range(len(file_paths)):
    print(file_paths[i])

运行结果如下:

python 复制代码
/Users/Desktop/python_code/My_project/get_path/data.csv
/Users/Desktop/python_code/My_project/get_path/data1.csv
/Users/Desktop/python_code/My_project/get_path/data2.csv

2.3 文件路径处理

常用的文件路径处理有拼接和拆分。

2.3.1 文件路径拼接

关键函数:os.path.join()

python 复制代码
import os
path = '/Users/Desktop/python_code/My_project/get_path' #输入文件夹路径
name = 'data' #文件名
expanded_name = '.csv' #文件扩展名
file_path = os.path.join(path,name+expanded_name)
print(file_path)

运行结果如下:

python 复制代码
/Users/Desktop/python_code/My_project/get_path/data.csv

2.3.2 文件路径拆分

① 拆分成文件夹路径和文件名

关键函数:os.path.split()

python 复制代码
import os
path = '/Users/Desktop/python_code/My_project/get_path' #输入文件夹路径
name = 'data' #文件名
expanded_name = '.csv' #文件扩展名
file_path = os.path.join(path,name+expanded_name)
#分割
result = os.path.split(file_path) #分成文件夹路径和文件名
print(result)

运行结果如下:

python 复制代码
('/Users/Desktop/python_code/My_project/get_path', 'data.csv')

② 拆分成文件路径和扩展名

关键函数:os.path.splitext()

python 复制代码
import os
path = '/Users/Desktop/python_code/My_project/get_path' #输入文件夹路径
name = 'data' #文件名
expanded_name = '.csv' #文件扩展名
file_path = os.path.join(path,name+expanded_name)
#分割
result = os.path.splitext(file_path) #分成文件路径和文件扩展名
print(result)

运行结果如下:

python 复制代码
('/Users/Desktop/python_code/My_project/get_path/data', '.csv')

③ 获取文件名(带扩展名)

关键函数:os.path.basename()

python 复制代码
result = os.path.basename(file_path) #获取文件名
print(result)

运行结果:

python 复制代码
data.csv

④ 获取文件夹路径

关键函数:os.path.dirname()

python 复制代码
result = os.path.dirname(file_path) #获取文件名
print(result)

运行结果:

python 复制代码
/Users/Desktop/python_code/My_project/get_path

2.4 文件路径判断

2.4.1 判断路径是否存在

python 复制代码
import os
#判断路径是否存在
path = os.getcwd() #获取当前工作目录文件夹路径
name = 'data' #文件名
expanded_name = '.csv' #文件扩展名
file_path = os.path.join(path,name+expanded_name)
judge = os.path.exists(file_path)
print(judge )

运行结果:

python 复制代码
True

2.4.2 判断是否为文件夹路径

python 复制代码
import os
#判断路径是否存在
path = os.getcwd() #获取当前工作目录文件夹路径
name = 'data' #文件名
expanded_name = '.csv' #文件扩展名
file_path = os.path.join(path,name+expanded_name)
#判断是否为文件夹路径
judge = os.path.isdir(file_path)
print(judge)

运行结果:

python 复制代码
False

2.4.3 判断是否为文件路径

python 复制代码
import os
#判断路径是否存在
path = os.getcwd() #获取当前工作目录文件夹路径
name = 'data' #文件名
expanded_name = '.csv' #文件扩展名
file_path = os.path.join(path,name+expanded_name)
#判断是否为文件
judge = os.path.isfile(file_path)
print(judge)

运行结果:

python 复制代码
True

注:

文件夹路径:/Users/Desktop/python_code/My_project/get_path

文件路径:/Users/Desktop/python_code/My_project/get_path/data.csv

参考链接:

一文搞懂Python的文件路径操作 - 知乎

相关推荐
Theodore_10222 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
网易独家音乐人Mike Zhou2 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
安静读书2 小时前
Python解析视频FPS(帧率)、分辨率信息
python·opencv·音视频
----云烟----4 小时前
QT中QString类的各种使用
开发语言·qt
lsx2024064 小时前
SQL SELECT 语句:基础与进阶应用
开发语言
小二·4 小时前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic4 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
向宇it4 小时前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
武子康4 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
转世成为计算机大神5 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式