Mam folder zawierający wiele subfoldery i każdy podfolder zawiera różne typy plików i czasami zawiera plik o nazwie run.csv. Jednak plik CSV ma zawsze nazwę run.csv i składa się zawsze z id kolumn, pasa, indeksu i innych.
Wiem, jak parsować pliki CSV, ale nie mogłem figurowaćjak przejść przez podfoldery i wydrukować wszystkie kolumny id, lane i indeksu bez informacji nagłówka ze wszystkich plików CSV na końcu. W tym celu powinienem idealnie używać języka perl.
Odpowiedzi:
0 dla odpowiedzi № 1Myślę, że chcesz glob
:
foreach my $csv_file ( glob "/path/to/dir/*/run.csv" ) {
#process CSV.
}
Ale jest to możliwe File::Find::Rule
:
foreach my $file ( File::Find::Rule -> name ("run.csv") -> in ( "/path/to/dir" ) ) {
print $file,"n";
}
Co robi to samo, ale rekurencyjnie. W obu przypadkach otrzymasz ścieżkę względną do bieżącego katalogu, więc możesz po prostu przekazać ją bezpośrednio do open
.