濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫(kù) > Python 如何獲取目錄下的文件列表,并自然排序

Python 如何獲取目錄下的文件列表,并自然排序

熱門標(biāo)簽:電銷機(jī)器人的風(fēng)險(xiǎn) 開封語音外呼系統(tǒng)代理商 400電話辦理哪種 河北防封卡電銷卡 天津電話機(jī)器人公司 手機(jī)網(wǎng)頁嵌入地圖標(biāo)注位置 應(yīng)電話機(jī)器人打電話違法嗎 地圖標(biāo)注線上如何操作 開封自動(dòng)外呼系統(tǒng)怎么收費(fèi)

在實(shí)際的算法與程序開發(fā)中,經(jīng)常需要面對(duì)的場(chǎng)景就是對(duì)同一目錄內(nèi)的文件進(jìn)行批量操作。

并且很多時(shí)候目錄中的文件明明是有規(guī)律的,同時(shí)希望程序在進(jìn)行處理時(shí)也是按照一定的順序進(jìn)行。

方法 1

>>> import os
>>> fileList = os.listdir('TestDir')
>>> fileList
['test1.txt', 'test10.txt', 'test11.txt', 'test2.txt', 'test23.txt', 'test28.txt']
>>> fileList.sort(key= lambda x:int(x[4:-4]))
>>> fileList
['test1.txt', 'test2.txt', 'test10.txt', 'test11.txt', 'test23.txt', 'test28.txt']
>>>

方法 2

>>> import os
>>> import natsort
>>> fileList = os.listdir('TestDir')
>>> fileList
['test1.txt', 'test10.txt', 'test11.txt', 'test2.txt', 'test23.txt', 'test28.txt']
>>> fileList = natsort.natsorted(fileList)
>>> fileList
['test1.txt', 'test2.txt', 'test10.txt', 'test11.txt', 'test23.txt', 'test28.txt']
>>>

補(bǔ)充:python對(duì)目錄下的文件排序問題

1.按照時(shí)間來排序

def get_file_list(file_path):
    dir_list = os.listdir(file_path)
    if not dir_list:
        return
    else:
        # 注意,這里使用lambda表達(dá)式,將文件按照最后修改時(shí)間順序升序排列
        # os.path.getmtime() 函數(shù)是獲取文件最后修改時(shí)間
        # os.path.getctime() 函數(shù)是獲取文件最后創(chuàng)建時(shí)間
        dir_list = sorted(dir_list,key=lambda x: os.path.getmtime(os.path.join(file_path, x)))
        # print(dir_list)
        return dir_list

2.獲取最后修改時(shí)間的文件路徑

import os
url='D:\PycharmProjects\Ambulance_Api\logs'
lists=os.listdir(url)
print(lists)
lists.sort(key=lambda fn: os.path.getmtime(url+'\\'+fn))
filepath=os.path.join(url,lists[-1])
print(filepath)

3.按照文件名字來排序

1)用庫(kù)函數(shù)sorted()對(duì)字符串排序,它的對(duì)象是字符

2)用函數(shù)sort()對(duì)數(shù)字排序,它的對(duì)象是數(shù)字,如果讀取文件的話,需要進(jìn)行處理(把文件后綴名‘屏蔽')

import os
img_path ='./img/'
img_list =sorted(os.listdir(img_path))    #文件名按字母排序
img_nums =len(img_list)
for i in range(img_nums):
img_name = img_path + img_list[i]
print(img_name)

sort函數(shù)中用到了匿名函數(shù)(key = lambda x:int(x[:-4])),其作用是將后綴名'.jpg'“屏蔽”(因?yàn)椤?jpg'是4個(gè)字符,所以[:-4]的含義是從文件名開始到倒數(shù)第四個(gè)字符為止)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Python入門基本操作列表排序用法詳解
  • Python列表排序方法reverse、sort、sorted詳解
  • Python列表排序 list.sort方法和內(nèi)置函數(shù)sorted用法
  • Python 排序最長(zhǎng)英文單詞鏈(列表中前一個(gè)單詞末字母是下一個(gè)單詞的首字母)
  • Python要如何實(shí)現(xiàn)列表排序的幾種方法
  • Python 列表排序詳解

標(biāo)簽:駐馬店 蘭州 成都 山東 常州 江蘇 宿遷 六盤水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python 如何獲取目錄下的文件列表,并自然排序》,本文關(guān)鍵詞  Python,如何,獲取,目,錄下,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python 如何獲取目錄下的文件列表,并自然排序》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python 如何獲取目錄下的文件列表,并自然排序的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    金寨县| 林周县| 贵港市| 宁河县| 通榆县| 永康市| 安图县| 伽师县| 基隆市| 梅州市| 利津县| 宁波市| 白银市| 龙里县| 松原市| 洱源县| 镇赉县| 屯昌县| 木里| 高青县| 基隆市| 沁源县| 绥滨县| 永修县| 沁阳市| 龙里县| 舟曲县| 凌海市| 项城市| 葫芦岛市| 潞城市| 商洛市| 鹿邑县| 西乌珠穆沁旗| 沁水县| 新邵县| 平陆县| 余庆县| 江华| 花莲县| 精河县|