python檔案資訊排序 Python檔案排序

2021-10-16 21:37:58 字數 2410 閱讀 2415

按檔名稱字串小寫排序

images.sort(key=lambda x: x.lower())

按建立時間精確到秒排序

images.sort(key=lambda x: os.path.getctime(x))

按建立時間,精確到納秒排序

images.sort(key=lambda x: os.stat(x).st_ctime_ns)

按檔名稱去掉字尾的數值名稱排序

images.sort(key = lambda x: int(x[:-4]))

使用os.stat的返回值statinfo的三個屬性獲取檔案的建立時間等資訊

statinfo=os.stat("e:\\a\\314_noteach_20190315162753_1552638473_152.png")

st_atime (訪問時間), st_mtime (修改時間), st_ctime(建立時間)

print(statinfo)

print(statinfo.st_mtime)

print(statinfo.st_ctime_ns)

可按照檔名稱排序,對字串和數值混合的可以自定義實現混合排序

# -*- coding: utf-8 -*-

# @time : 2019/4/30 13:32

# @author : shine

# @file : mix_sort.py

基於字串數字混合排序的python指令碼

def is_number(s):

try:

float(s)

return true

except valueerror:

pass

try:

import unicodedata

unicodedata.numeric(s)

return true

except (typeerror, valueerror):

pass

return false

def find_continuous_num(astr, c):

num = ''

try:

while not is_number(astr[c]) and c < len(astr):

c += 1

while is_number(astr[c]) and c < len(astr):

num += astr[c]

c += 1

except:

pass

if num != '':

return int(num)

def comp2filename(file1, file2):

smaller_length = min(len(file1), len(file2))

for c in range(0, smaller_length):

if not is_number(file1[c]) and not is_number(file2[c]):

if file1[c] < file2[c]:

return true

if file1[c] > file2[c]:

return false

if file1[c] == file2[c]:

if c == smaller_length - 1:

if len(file1) < len(file2):

return true

else:

return false

else:

continue

if is_number(file1[c]) and not is_number(file2[c]):

return true

if not is_number(file1[c]) and is_number(file2[c]):

return false

if is_number(file1[c]) and is_number(file2[c]):

if find_continuous_num(file1, c) < find_continuous_num(file2, c):

return true

else:

return false

def sort_list_by_name(lst):

for i in range(1, len(lst)):

x = lst[i]

j = i

while j > 0 and comp2filename(x, lst[j-1]):

lst[j] = lst[j-1]

j -= 1

lst[j] = x

return lst

標籤:檔案,file1,return,file2,python,number,lst,num,排序

Python提取CSV檔案資訊

collecting multilingual parallel video descriptions using mechanical turk 其中有個csv檔案表示了資料集的一些資訊,如圖所示 我需要將前三列合併成上述video名稱,並篩選出language english時的descript...

mac終端輸入python預設開啟python3

1.終端開啟 bash profile檔案 open bash profile 2.新增以下內容到.bash profile檔案 setting path for python 3.5 path library frameworks python.framework versions 3.5 bin...

讀取檔案內的資訊,並排序。

include include typedef struct studentstudent void getsecond student s,int sn void sort student s,int sn int main 開啟 if 檔案 if fp fopen e h.txt r null ...