Próbuję wydrukować foldery ścieżek Pythona za pomocą tego:
import sys
print sys.path
Wynik jest taki:
>>> print sys.path
['.', '/usr/bin', '/home/student/Desktop', '/home/student/my_modules', '/usr/lib/pyth
on2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/pyth
on2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/local/lib/python2.6/dist-pack
ages', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/
usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/
python2.6/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.6/gtk-2.0', '/usr/lib/p
ython2.6/dist-packages/wx-2.8-gtk2-unicode']
Jak wydrukować je w osobnych wierszach, aby móc je poprawnie przeanalizować?
Powinno wyglądać tak:
/usr/bin
/home/student/Desktop
/home/student/my_modules
etc
Odpowiedzi:
print("\n".join(sys.path))
(Zewnętrzne nawiasy są uwzględnione w celu zapewnienia zgodności z Pythonem 3 i zwykle są pomijane w Pythonie 2).
źródło
for line in sys.path: print line
f = lambda *x: null; f( *( print( x ) for x in sys.path ) )
- tylko żartuję ...Użyj funkcji drukowania (Python 3.x) lub zaimportuj ją (Python 2.6+):
from __future__ import print_function print(*sys.path, sep='\n')
źródło
Inną dobrą opcją do obsługi tego rodzaju opcji jest
pprint
moduł, który (między innymi) ładnie drukuje długie listy z jednym elementem w wierszu:>>> import sys >>> import pprint >>> pprint.pprint(sys.path) ['', '/usr/lib/python27.zip', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/lib/python2.7/site-packages', '/usr/lib/python2.7/site-packages/PIL', '/usr/lib/python2.7/site-packages/gst-0.10', '/usr/lib/python2.7/site-packages/gtk-2.0', '/usr/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info', '/usr/lib/python2.7/site-packages/webkit-1.0'] >>>
źródło
a = [1,3,5]
, to ta linia wypisze tę tablicę tylko w jednym wierszu ... czy istnieje gwarantowany sposóbpprint
wydrukowania jej w oddzielnych wierszach?pprint.pprint(x,width=max([len(str(s)) for s in x])+3)
for path in sys.path: print path
źródło
Odpowiedź Svena Marnacha jest prawie taka, ale ma jeden ogólny problem ... Nie powiedzie się, jeśli drukowana lista nie zawiera tylko ciągów.
Tak więc ogólniejsza odpowiedź brzmi: „Jak wydrukować listę z elementami oddzielonymi znakami nowej linii” ...
print '\n'.join([ str(myelement) for myelement in mylist ])
Z drugiej strony podejście do funkcji drukowania, które JBernardo wskazuje, jest lepsze. Jeśli możesz, użycie funkcji print zamiast instrukcji print jest prawie zawsze dobrym pomysłem.
źródło
Użyj operatora splat (*)
Domyślnie operator * wyświetla listę oddzieloną spacjami. Użyj
sep
operatora, aby określić separatorprint(*sys.path, sep = "\n")
źródło
sys.path zwraca listę ścieżek
ref
Lista ciągów, która określa ścieżkę wyszukiwania modułów. Zainicjowane ze zmiennej środowiskowej PYTHONPATH oraz wartości domyślnej zależnej od instalacji.
Zgodnie z inicjalizacją podczas uruchamiania programu, pierwsza pozycja na tej liście, ścieżka [0], jest katalogiem zawierającym skrypt, który został użyty do wywołania interpretera Pythona. Jeśli katalog skryptu nie jest dostępny (np. Jeśli interpreter jest wywoływany interaktywnie lub jeśli skrypt jest czytany ze standardowego wejścia), ścieżka [0] jest pustym ciągiem, który kieruje Pythona do wyszukiwania modułów w bieżącym katalogu w pierwszej kolejności. Zwróć uwagę, że katalog skryptów jest wstawiany przed wpisami wstawionymi jako wynik PYTHONPATH .
import sys dirs=sys.path for path in dirs: print(path)
lub możesz wydrukować tylko pierwszą ścieżkę przez
print(dir[0])
źródło