[英]Python - adding file names (not full paths) to list from directory and subfolders
[英]Isolating file names from paths in python
我正在嘗試將文件名與使用“filedialog.askopenfilenames”導入的路徑隔離開來。 我這樣做是為了以后可以在情節中使用它們。
例如,我導入了三個具有以下名稱的 excel 文件:“sample_excel_1”、“sample_excel_2.xlsx”、“sample_excel_3.xlsx”
在我的情況下,輸出是文件的完整路徑(即('//tudelft.net/staff-homes/K/mkhadijeh/Desktop/Python/sample_excel_1.xlsx', '//tudelft.net/staff-homes /K/mkhadijeh/Desktop/Python/sample_excel_2.xlsx', '//tudelft.net/staff-homes/K/mkhadijeh/Desktop/Python/sample_excel_3.xlsx') )
我希望輸出改為("sample_excel_1","sample_excel_2.xlsx","sample_excel_3.xlsx")
任何幫助!
代碼如下:
import tkinter
from tkinter import *
from tkinter import filedialog
import numpy as np
filename = filedialog.askopenfilenames(initialdir="c:/", title="Selecte a file", filetypes=(("Excel files", "*.xlsx"),("All files","*.*")))
a = filename
print(a)
我希望 a 成為一個列表,以便以后可以輕松訪問它(即 ["sample_excel_1","sample_excel_2.xlsx","sample_excel_3.xlsx"] )
由於您將文件名作為完整路徑,並且您想要稍后(未來)過程的名稱,您可以執行以下操作之一:
1-遍歷您現在擁有的列表並使用 os.path.basename 獲取文件名:
import os
import tkinter
from tkinter import *
from tkinter import filedialog
import numpy as np
filename = filedialog.askopenfilenames(initialdir="c:/", title="Selecte a file", filetypes=(("Excel files", "*.xlsx"),("All files","*.*")))
a = filename
a = [os.path.basename(path) for path in a]
print(a)
2-或使用拆分庫,通過拆分'\'並獲取生成列表中的最后一個元素
filename = filedialog.askopenfilenames(initialdir="c:/", title="Selecte a file", filetypes=(("Excel files", "*.xlsx"),("All files","*.*")))
a = filename
a = [path.split('\')[-1] for path in a]
print(a)
然后建議使用pathlib
庫來實現跨平台兼容性,而不是os
:
import tkinter
from tkinter import *
from tkinter import filedialog
import numpy as np
from pathlib import PurePath
a = []
filename = filedialog.askopenfilenames(initialdir="c:/", title="Selecte a file", filetypes=(("Excel files", "*.xlsx"),("All files","*.*")))
for f in filename:
a.append(PurePath(filename).name)
print(a)
編輯:我沒有看到文件名可以生成的多個輸出。 解決它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.