Alfred i kopiowanie nazw plików lub folderów

30/03/2017, 09:11 · · · 8

Niemal cztery lata temu podzieliłem się z Wami workflow, którego zadaniem było kopiowanie nazw zaznaczonego pliku lub folderu. Teraz wracam do tego tematu z ulepszoną wersją.

Największą bolączką poprzedniej wersji mojego workflow był brak obsługi wielu plików jednocześnie. Po wielu bojach w końcu udało mi się osiągnąć ten cel w sposób mnie zadowalający. Akcja przepisana jest praktycznie od zera i teraz nie opiera się na skrypcie Basha, ale na Pythonie. Treść skryptu możecie znaleźć poniżej:

Pokrótce postaram się opisać poszczególne fragmenty:

  • from… …import… – tu oczywiście importujemy potrzebne biblioteki;
  • query = re.sub('\t', '\n', query) – ten fragment jest odpowiedzialny za podmianę tabulatorów rozdzielających kolejne ścieżki plików na nowe linie, przez co tworzymy ciąg składający się z wielu linii tekstu;
  • query = query.splitlines() – tym poleceniem konwertujemy wieloliniową zmienną na listę;
  • num = len(query) – dzięki temu fragmentowi ustalamy, ile elementów znajduje się na liście;
  • for … – rozpoczynamy pętlę która będzie przetwarzała każdy z elementów listy;
  • query[i] = basename(query[i]) – dla każdego elementu listy polecenie basename „wyciąga” ostatni kawałek ścieżki, czyli nazwę pliku lub katalogu i nadpisuje ją na poprzednią wartość elementu;
  • wynik = "\n".join(query) – przedostatnim krokiem jest ponowne przekonwertowanie listy elementów na wieloliniowy ciąg tekstowy.
  • sys.stdout.write(wynik) – to polecenie zwraca nam ciąg nazw, z których każda jest w osobnej linii. Jego działanie jest podobne do bardziej znanego print, ale w odróżnieniu od tego drugiego nie wstawia na końcu dodatkowej, nowej linii.

Wynik powyższego skryptu jest przekazywany do kolejnego elementu – Copy to Clipboard, dzięki czemu możemy wkleić skopiowane nazwy w wybrane przez nas miejsce.

Workflow Copy Name możecie pobrać stąd.


Więcej workflows dla Alfreda znajdziecie tutaj.

8

Maciej Skrzypczak

Użytkownik sprzętu z nadgryzionym jabłkiem, grafik komputerowy, nałogowy gracz ARK: Survival Evolved. Redaktor iMagazine.pl.