Pracuję z programem, który zapisuje dane wyjściowe do pliku csv na podstawie kolejności odczytywania plików z katalogu. Jednak z dużą liczbą plików z zakończeniami 1,2,3,4,5,6,7,8,9,10,11,12. Mój program odczytuje pliki według mojej kolejności alfabetycznej: 1,10,11,12 ...., 2,20,21 ..... 99. Problem polega na tym, że inny program zakłada, że kolejność jest porządkowana numerycznie i pochyla wyniki wykresu.Jak sortować pliki w katalogu przed przeczytaniem?
Faktycznie plik wygląda następująco: String.ext.ext2.1.txt, String.ext.ext2.2.txt
, i tak dalej ...
Jak mogę to zrobić z skrypt Pythona?
Czy możesz wyjaśnić, jak działa druga linia? – Jim
'sorted_files = posortowane (pliki, klucz = lambda x: int (x.split ('.') [3]))' Funkcje "posortowane" sortują pierwszy argument za pomocą selektora podanego przez drugi argument. Pomyśl o sortowaniu tabeli według określonej kolumny. Teraz, dla drugiego argumentu. Jest to funkcja przekształcająca twoją nazwę pliku na listę części (oddzieloną przez ".") I przyjęcie trzeciego elementu na tej liście. –
Gotowy do pracy z tym: sorted_files = posortowane (file_list, key = lambda x: int (x. split ('.') [3]) if (x.endswith ("txt")) else x) – Jim