Python中文件路徑常用操作總結
1 文件路徑
在進行數(shù)據(jù)處理時,經(jīng)常要用代碼去讀文件里的數(shù)據(jù),那么首先就得知道這個文件的文件路徑。文件路徑簡單地說就是文件的存放位置。文件路徑分為兩塊:文件夾路徑和文件名,文件名又分為文件基本名和擴展名。
舉例說明:
'/Users/Desktop/data.csv'
其中,
‘/Users/Desktop/‘ 為文件夾路徑
‘Data’ 為文件基本名
‘.csv’為文件擴展名。
2 常用操作
2.1 文件路徑創(chuàng)建
關鍵函數(shù):makedirs()——創(chuàng)建新文件夾(目錄)
import os path = "/Users/Desktop/python_code/My_project/get_path/new" os.makedirs(path)
2.2 文件路徑獲取
獲取文件路徑有以下幾種場景:1、 獲取當前工作路徑;2、 獲取其它文件路徑,其它文件路徑又可以是一個也可以是多個。
2.2.1 獲取當前工作路徑
關鍵函數(shù):getcwd()
#獲取當前工作目錄 import os path = os.getcwd() #獲取當前工作目錄文件夾路徑 name = 'data' #文件名 expanded_name = '.csv' #文件擴展名 file_path = os.path.join(path,name+expanded_name)#文件路徑拼接 print(file_path)
運行結果如下:
/Users/Desktop/python_code/My_project/get_path/data.csv
2.2.2 獲取一個文件路徑
獲取其它文件路徑的方式有兩種,一種是在代碼里面直接輸入,另一種是采用彈框的形式,手動選擇文件夾或者文件。
① 直接在代碼里輸入路徑
#獲取一個文件-輸入文件路徑 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)
運行結果如下:
/Users/Desktop/python_code/My_project/get_path/data.csv
② 彈框選擇文件夾或者文件
彈框選擇文件夾:
#彈框選擇文件夾 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)
彈框選擇文件:
#彈框選擇目標文件 import tkinter as tk from tkinter import filedialog window = tk.Tk() window.title('請選擇目標文件') file_path = filedialog.askopenfilename() #選擇目標文件 print(file_path)
2.2.3 獲取多個文件路徑
在實際應用中更多的是需要獲取多個文件路徑,這其中的關鍵是獲取到文件夾里的所有文件,然后再逐一處理。
方法一:
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])
方法二:
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])
運行結果如下:
/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 文件路徑拼接
關鍵函數(shù):os.path.join()
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)
運行結果如下:
/Users/Desktop/python_code/My_project/get_path/data.csv
2.3.2 文件路徑拆分
① 拆分成文件夾路徑和文件名
關鍵函數(shù):os.path.split()
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)
運行結果如下:
('/Users/Desktop/python_code/My_project/get_path', 'data.csv')
② 拆分成文件路徑和擴展名
關鍵函數(shù):os.path.splitext()
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)
運行結果如下:
('/Users/Desktop/python_code/My_project/get_path/data', '.csv')
③ 獲取文件名(帶擴展名)
關鍵函數(shù):os.path.basename()
result = os.path.basename(file_path) #獲取文件名 print(result)
運行結果:
data.csv
④ 獲取文件夾路徑
關鍵函數(shù):os.path.dirname()
result = os.path.dirname(file_path) #獲取文件名 print(result)
運行結果:
/Users/Desktop/python_code/My_project/get_path
2.4 文件路徑判斷
2.4.1 判斷路徑是否存在
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 )
運行結果:
True
2.4.2 判斷是否為文件夾路徑
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)
運行結果:
False
2.4.3 判斷是否為文件路徑
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)
運行結果:
True
注:
文件夾路徑:/Users/Desktop/python_code/My_project/get_path
文件路徑:/Users/Desktop/python_code/My_project/get_path/data.csv
以上就是Python中文件路徑常用操作總結的詳細內容,更多關于Python文件路徑操作的資料請關注腳本之家其它相關文章!
相關文章
為什么在函數(shù)中運行的?Python?代碼速度更快?
對于Python解釋器來說,讀取和寫入局部變量比全局變量更容易和更快,因為它們的作用域范圍較小2023-09-09Python的Django框架中的數(shù)據(jù)過濾功能
這篇文章主要介紹了Python的Django框架中的數(shù)據(jù)過濾功能,為更新數(shù)據(jù)庫數(shù)據(jù)時的數(shù)據(jù)查找提供了方便,需要的朋友可以參考下2015-07-07