![](/img/trans.png)
[英]Get the file name which contains the latest timestamp in a directory using python
[英]how to get name of a file in directory using python
在名為“ export
”的文件夾中有一個 mkv 文件。 我想要做的是制作一個 python 腳本,從該導出文件夾中獲取文件名。 假設該文件夾位於“ C:\\Users\\UserName\\Desktop\\New_folder\\export
”。
我如何獲取名稱?
我嘗試使用這個os.path.basename
和os.path.splitext
.. 好吧.. 沒有像我預期的那樣工作。
os.path
在路徑名上實現了一些有用的功能。 但它無權訪問路徑的內容。 為此,您可以使用os.listdir
。
以下命令將為您提供給定路徑的內容列表:
os.listdir("C:\Users\UserName\Desktop\New_folder\export")
現在,如果您只想要.mkv
文件,您可以使用fnmatch
(此模塊提供對 Unix shell 樣式通配符的支持)模塊來獲取您預期的文件名:
import fnmatch
import os
print([f for f in os.listdir("C:\Users\UserName\Desktop\New_folder\export") if fnmatch.fnmatch(f, '*.mkv')])
同樣,正如@Padraic Cunningham 提到的,作為處理文件名的更pythonic 的方式,您可以使用glob
模塊:
map(path.basename,glob.iglob(pth+"*.mkv"))
您可以使用glob :
from glob import glob
pth ="C:/Users/UserName/Desktop/New_folder/export/"
print(glob(pth+"*.mkv"))
path+"*.mkv"
將匹配所有以.mkv
結尾的文件。
要獲得基本名稱,您可以使用 map 或帶有 iglob 的列表組合:
from glob import iglob
print(list(map(path.basename,iglob(pth+"*.mkv"))))
print([path.basename(f) for f in iglob(pth+"*.mkv")])
iglob 返回一個迭代器,因此您不會無緣無故地構建列表。
我假設您基本上是在問如何列出給定目錄中的文件。 你想要的是:
import os
print os.listdir("""C:\Users\UserName\Desktop\New_folder\export""")
如果有多個文件並且您想要具有 .mkv 結尾的文件,您可以執行以下操作:
import os
files = os.listdir("""C:\Users\UserName\Desktop\New_folder\export""")
mkv_files = [_ for _ in files if _[-4:] == ".mkv"]
print mkv_files
如果您正在搜索遞歸文件夾搜索,此方法將幫助您使用os.walk
獲取文件名,您也可以使用以下代碼獲取這些文件的路徑和目錄。
import os, fnmatch
for path, dirs, files in os.walk(os.path.abspath(r"C:/Users/UserName/Desktop/New_folder/export/")):
for filename in fnmatch.filter(files, "*.mkv"):
print(filename)
你可以使用 glob
import glob
for file in glob.glob('C:\Users\UserName\Desktop\New_folder\export\*.mkv'):
print(str(file).split('\')[-1])
這將列出所有擴展file.mkv, file2.mkv
.mkv 的文件,如file.mkv, file2.mkv
等。
從os.walk您可以讀取文件路徑作為列表
files = [ file_path for _, _, file_path in os.walk(DIRECTORY_PATH)]
for file_name in files[0]: #note that it has list of lists
print(file_name)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.