Pracuję nad domyślnym interpreterem języka Python w systemie Mac OS X i Cmd+ K(wyczyściłem) moje wcześniejsze polecenia. Mogę je przeglądać pojedynczo, używając klawiszy strzałek. Ale czy istnieje opcja taka jak --history w powłoce bash, która pokazuje wszystkie polecenia, które wprowadziłeś do tej pory?
149
history
powłoki to program jak każdy inny. To nie jest „opcja” wbash
poleceniu.history
to wbudowana powłoka.%history
. A-g
opcja pobiera wcześniejsze sesje .Odpowiedzi:
Użyj,
readline.get_current_history_length()
aby uzyskać długość ireadline.get_history_item()
wyświetlić każdy.źródło
Kod do wydrukowania całej historii:
Python 3
Jedna linijka (szybkie kopiowanie i wklejanie):
(Lub dłuższa wersja ...)
Python 2
Jedna linijka (szybkie kopiowanie i wklejanie):
(Lub dłuższa wersja ...)
Uwaga :
get_history_item()
indeksowane jest od 1 do n.źródło
import readline; print '\n'.join([str(readline.get_history_item(i)) for i in range(readline.get_current_history_length())])
history()
funkcję z powyższym w moim skrypcie startowym interpretera Pythona (skrypt wskazywany przez env. Var$PYTHONSTARTUP
). Od teraz mogę po prostu wpisaćhistory()
dowolną sesję tłumacza ;-)W przypadku interpretera Pythona 3 historia jest zapisywana
~/.python_history
źródło
cat ~/.python_history
quit()
tłumacza, aby historia bieżącej sesji została uwzględniona~/.python_history
Jeśli chcesz zapisać historię do pliku:
Funkcja pomocy daje:
źródło
Ponieważ powyższe działa tylko dla pythona 2.x dla pythona 3.x (konkretnie 3.5) jest podobne, ale z niewielką modyfikacją:
zwróć uwagę na dodatkowe ()
(używanie skryptów powłoki do parsowania .python_history lub używanie Pythona do modyfikacji powyższego kodu jest kwestią osobistego gustu i sytuacji imho)
źródło
C:\>python -m pip install readline
=>Collecting readline
\ nDownloading https://files.pythonhosted.org/packages/f4/01/2cf081af8d880b44939a5f1b446551a7f8d59eae414277fd0c303757ff1b/readline-6.2.4.1.tar.gz (2.3MB)
\ n|████████████████████████████████| 2.3MB 1.7MB/s
\ nERROR: Complete output from command python setup.py egg_info:
\ nERROR: error: this module is not meant to work on Windows
\ n----------------------------------------
\ n `BŁĄD: Polecenie" python setup.py egg_info "nie powiodło się z kodem błędu 1 w C: \ Users \ dblack \ AppData \ Local \ Temp \ pip-install-s6m4zkdw \ readline`pip install readline
, alereadline
jest on instalowany domyślnie w systemie Windows.W IPythonie
%history -g
należy podać całą historię poleceń. Domyślna konfiguracja zapisuje również historię w pliku o nazwie .python_history w katalogu użytkownika.źródło
Prosta funkcja, aby uzyskać historię podobną do wersji unix / bash.
Mam nadzieję, że pomoże to niektórym nowym ludziom.
Snippet: Testowane w Pythonie3. Daj mi znać, jeśli są jakieś usterki w Pythonie2. Próbki:
Mam nadzieję, że to pomaga ludziom.
źródło
cut -c 8
je wychodzę.)@ Jason-V, to naprawdę pomaga, dzięki. następnie znalazłem te przykłady i utworzyłem własny fragment.
źródło
To powinno dać ci polecenia wydrukowane w oddzielnych wierszach:
źródło
Powtórzenie odpowiedzi Doogle , która nie wypisuje numerów linii, ale pozwala określić liczbę linii do wydrukowania.
źródło