Sortieren von Dateien nach Namenskonvention mit Python

Nach Teil der Namenskonvention sortieren

test.csv


001_0004_1.bmp
002_0004_1.bmp
003_0004_1.bmp
004_0003_1.bmp
005_0003_1.bmp
006_0003_1.bmp
007_0002_1.bmp
008_0002_1.bmp
009_0002_1.bmp
010_0001_1.bmp
011_0001_1.bmp
012_0001_1.bmp

Angenommen, Sie haben einen Dateinamen wie den Inhalt von test.csv oben. Die in dieser CSV beschriebene BMP-Datei enthält die folgenden Namensregeln (es handelt sich um eine ordnungsgemäß erstellte Namensregel):

FFF_TTTT_C.bmp

--F: Rahmennummer --T: Eine Art Index

Der Inhalt der obigen CSV-Datei ist nach Frame-Nummer sortiert. Aus irgendeinem Grund

** "Ich möchte nach einem Index von T sortieren!" **

Ich gehe davon aus, zu sortieren, wenn ein solcher Fall herauskommt.

Denkweise

  1. Lesen Sie den Dateinamen aus CSV
  2. Teilen Sie die gelesene Datei mit'_ '
  3. Sortieren Sie nach geteilten Zahlen
  4. Formen Sie die Liste und geben Sie sie in CSV aus

Ich habe ein Programm mit der Idee erstellt. Wenn Sie sorgfältig suchen, wird die Funktion Ippatsu Dawn! Ich habe das Gefühl, ich kann es schaffen mit ...

Quellcode

##
# coding:utf-8
##

import csv
import pprint as pp

##
#Sortieren nach Namenskonvention
# inputlist:Liste zum Sortieren
# key_number:Geben Sie die Anzahl der zu sortierenden Zeichenfolgen an
# key_Gibt eine leere Liste zurück, wenn die Anzahl die Anzahl der Unterteilungen in der Namenskonvention überschreitet
##
def Sort_by_Key(input_list,key_number,split='_'):
    #Teilen Sie den Dateinamen und konvertieren Sie ihn in das Tapple-Format
    file_sort = []
    for t in input_list:
        sp_t = t.split(split)
        tap_sp_t = tuple(sp_t)
        file_sort.append(tap_sp_t)

    if len(file_sort[0]) < key_number:
        return []

    #Sortieren
    file_sort.sort(key=lambda t: t[key_number])

    #Kleben Sie die Spalten zusammen
    output_file = []
    for f in file_sort:
        s = split.join(f)
        output_file.append(s)

    return output_file

def main():
    #Datei lesen
    op = open('test.csv','r')
    tpp = csv.reader(op)

    #Extrahieren Sie nur die erste Zeile von csv
    test_file = []
    for t in tpp:
        test_file.append(t[0])

    op.close()

    #Ursprüngliche Bestellung
    print("before")
    pp.pprint(test_file)

    file_save = Sort_by_Key(test_file,1)

    print("\nafter")
    pp.pprint(file_save)

    #Konvertierung zur Speicherung
    row = len(file_save)
    col = 1
    SaveList = [file_save[col * i: col * (i + 1)] for i in range(row)]

    wp = open('output.csv','w')
    writer = csv.writer(wp, lineterminator='\n')
    writer.writerows(SaveList)
    wp.close()

if __name__=="__main__":
    main()

output.csv


010_0001_1.bmp
011_0001_1.bmp
012_0001_1.bmp
007_0002_1.bmp
008_0002_1.bmp
009_0002_1.bmp
004_0003_1.bmp
005_0003_1.bmp
006_0003_1.bmp
001_0004_1.bmp
002_0004_1.bmp
003_0004_1.bmp

Referenzseite

[1] Lesen und Schreiben von CSV mit Python [2] Einführung in Python-Listen, Taples, Wörterbücher [3] Python: Informationen zum Sortieren von Objekten [4] Zeichenfolgen mit Python verketten / teilen: join (), split () [5] convert a flat list to list of list in python [6] Bibliothek: pprint

Recommended Posts

Sortieren von Dateien nach Namenskonvention mit Python
Sortieren von Bilddateien mit Python (2)
Sortieren von Bilddateien mit Python (3)
Python-Namenskonvention (ab PEP8)
Finden Sie die kumulative Verteilungsfunktion durch Sortieren (Python-Version)
Grundlegende Sortierung in Python
Visualisierungsnotiz von Python
Kommunikationsverarbeitung durch Python
Re: Menschliche Kraftsortierung [Python]
Beamformer-Antwort von Python
[Python] Numpy Daten sortieren
Python - MP3-Dateien markieren
[Python] CSV-Dateien lesen
[Python] Google Mail mit Python senden: Senden Sie eins nach dem anderen mit mehreren angehängten Bilddateien
Spracherkennung durch Python MFCC
EXE Web API von Python
Newcomer Trainingsprogramm von Python
Parametereinstellung durch Python Configparser
Pin Python von Conda verwaltet
Sortieren Sie große Dateien mit Python
Techniken zum Sortieren in Python
Keyword-Extraktion mit MeCab (Python)
Zahlen durch 3 Ziffern trennen (Python)
Markov-Schaltmodell von Python
TXT-Dateien mit Python lesen
Bildverarbeitung mit Python (Pillow)
Entpacke mehrere komprimierte Dateien (Python)
Python wurde von C-Programmierern gestartet
Plattform (OS) Beurteilung durch Python
Sortieren nach Datum in Python