本文採用os.walk()和os.listdir()兩種方法,獲取指定文件夾下的文件名。
一、os.walk()
模塊os中的walk()函數可以遍歷文件夾下所有的文件。
[python] view plain
os.walk(top, topdown=Ture, onerror=None, followlinks=False)
該函數可以得到一個三元tupple(dirpath, dirnames, filenames).
參數含義:
dirpath:string,代表目錄的路徑;
dirnames:list,包含了當前dirpath路徑下所有的子目錄名字(不包含目錄路徑);
filenames:list,包含了當前dirpath路徑下所有的非目錄子文件的名字(不包含目錄路徑)。
注意,dirnames和filenames均不包含路徑信息,如需完整路徑,可使用os.path.join(dirpath, dirnames)
下面給出代碼;
[python] view plain
# -*- coding: utf-8 -*-
import os
def file_name(file_dir):
for root, dirs, files in os.walk(file_dir):
print(root) #當前目錄路徑
print(dirs) #當前路徑下所有子目錄
print(files) #當前路徑下所有非目錄子文件
當需要特定類型的文件時,代碼如下:
[python] view plain
# -*- coding: utf-8 -*-
import os
def file_name(file_dir):
L=[]
for root, dirs, files in os.walk(file_dir):
for file in files:
if os.path.splitext(file)[1] == '.jpeg':
L.append(os.path.join(root, file))
return L
其中os.path.splitext()函數將路徑拆分為文件名+擴展名,例如os.path.splitext(「E:/lena.jpg」)將得到」E:/lena「+".jpg"。
二、os.listdir()
os.listdir()函數得到的是僅當前路徑下的文件名,不包括子目錄中的文件,所有需要使用遞歸的方法得到全部文件名。
直接給出代碼,函數將返回類型為『.jpeg』個文件名:
[python] view plain
# -*- coding: utf-8 -*-
import os
def listdir(path, list_name):
for file in os.listdir(path):
file_path = os.path.join(path, file)
if os.path.isdir(file_path):
listdir(file_path, list_name)
elif os.path.splitext(file_path)[1]=='.jpeg':
list_name.append(file_path)
2. python文件名可以用中文嗎
rt,如何使用python生成中文文件名的文件,請給出一段代碼。
3. python如何通過文件名前的編號索引出完整的文件名
用os.walk(path)遍歷文件夾A得到A文件夾下所有的文件以及目錄,根據獲取到的所有的文件名,通過if name in file_name 來過濾出你要的文件
import os
for root, path, names in os.walk(r'D: est'):
print(root, path, names)
for name in names:
if 'a' in name:
print('---------')
print(name)
print('---------')
4. python怎麼讀取文件名的內容
python讀取文件內容的方法:
一.最方便的方法是一次性讀取文件中的所有內容並放置到一個大字元串中:
all_the_text = open('thefile.txt').read( )
# 文本文件中的所有文本
all_the_data = open('abinfile','rb').read( )
# 二進制文件中的所有數據
為了安全起見,最好還是給打開的文件對象指定一個名字,這樣在完成操作之後可以迅速關閉文件,防止一些無用的文件對象佔用內存。舉個例子,對文本文件讀取:
file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
不一定要在這里用Try/finally語句,但是用了效果更好,因為它可以保證文件對象被關閉,即使在讀取中發生了嚴重錯誤。
二.最簡單、最快,也最具Python風格的方法是逐行讀取文本文件內容,並將讀取的數據放置到一個字元串列表中:
list_of_all_the_lines = file_object.readlines( )
這樣讀出的每行文本末尾都帶有"\n"符號;如果你不想這樣,還有另一個替代的辦法,比如:
list_of_all_the_lines = file_object.read( ).splitlines( )
list_of_all_the_lines = file_object.read( ).split('\n')
list_of_all_the_lines = [L.rstrip('\n') for L in file_object]
最簡單最快的逐行處理文本文件的方法是,用一個簡單的for循環語句:
for line in file_object:
process line
這種方法同樣會在每行末尾留下"\n"符號;可以在for循環的主體部分加一句:
lineline = line.rstrip('\n')
或者,你想去除每行的末尾的空白符(不只是'\n'\),常見的辦法是:
lineline = line.rstrip( )
5. python文件名獲取文件路徑
使用os.path.abspath()函數來獲取文件絕對路徑
文件目錄結構如下:
os.path.abspath(path)返回path規范化的絕對路徑(但這個路徑不一定是真實的路徑),如果path僅是一個文件名,使用該函數後返回的路徑是當前工作目錄路徑連接改文件名後所組成的新的路徑名。
>>> import os.path
>>> os.path.abspath("a.py")
'C:\Users\Administrator\a.py'
os.path.split(path)將path分割成目錄和文件名二元組返回
>>> os.path.split("C:\Users\Administrator\a.py")
('C:\Users\Administrator', 'a.py')
os.path.dirname(path)返回path的目錄,其實就是os.path.split(path)的第一個元素
>>> os.path.dirname("C:\Users\Administrator\a.py")
'C:\Users\Administrator'
os.path.basename(path)返回path最後的文件名。如果path以/或結尾,就會返回空值。即os.path.split(path)的第二個元素。
>>> os.path.basename("C:\Users\Administrator\a.py")
'a.py'
os.path.commonprefix(list)返回list中所有path共有的最長的路徑,從左向右,相同字元。
os.path.exists(path)如果path存在,返回True;如果path不存在,返回False。
os.path.isabs(path)如果path是絕對路徑,返回True。
os.path.normpath(path)規范path字元串形式(規範文件路徑)
os.path.isfile(path)判斷路徑是否為文件,是返回True,否則返回False
os.path.isdir(path)如果path是一個存在的目錄,返回True,否則返貨False。
os.path.islink(path)是否是鏈接;但如果系統不支持鏈接,則返回False。
6. python 以變數命名文件名
用+號連接符連接後綴名ouput=open(str1+".txt",'w')//,用引號括起來表示的是字元串常量,不在引號中才表示變數,//,是在windows下運行,變數str1中不能有在文件名中不能出現的特殊字元。
in.close()如果你僅僅想知道如何連接string,file_a="{date}。
{ext}".format(date=f,ext="txt")file_b="{date}.{ext}".format(date=f,ext="jpg")。
(6)python文件名擴展閱讀:
Python在執行時,首先會將.py文件中的源代碼編譯成Python的byte code(位元組碼),然後再由Python Virtual Machine(Python虛擬機)來執行這些編譯好的byte code。這種機制的基本思想跟Java,.NET是一致的。
這里的高級並不是通常意義上的高級,不是說Python的Virtual Machine比Java或.NET的功能更強大,而是說和Java 或.NET相比,Python的Virtual Machine距離真實機器的距離更遠。
除此之外,Python還可以以交互模式運行,比如主流操作系統Unix/Linux、Mac、Windows都可以直接在命令模式下直接運行Python交互環境。直接下達操作指令即可實現交互操作。
參考資料來源:網路-Python
7. python文件的文件名只能是什麼,什麼和什麼的組合
你好,
看你的問題,答案應該是:
python文件的文件名只能是 字母 , 數字 和 下劃線 的組合
寫在最後:
大多數的語言變數命名都是這個組合
希望對你有幫助,歡迎追問
8. Python中,已知文件路徑,但並不知道文件名。如何用Python實現文件名的獲取
import os
d=文件夾路徑
l=os.listdir(d)
則l就是文件夾里所以子文件夾和文件的列表,可以通過os.path.isfile和os.path.isdir來對列表裡的項進行判斷看是文件還是文件夾。
9. python關於文件名*
python裡面經常用到正則表達式里的符號,*也是其中的一個正則符號,就是表示c到.中間的任意內容,空字元也行