Ich versuche, Python-Pfadordner folgendermaßen auszudrucken:
import sys
print sys.path
Die Ausgabe ist wie folgt:
>>> 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']
Wie drucke ich sie in separate Zeilen, damit ich sie richtig analysieren kann?
Es sollte so sein:
/usr/bin
/home/student/Desktop
/home/student/my_modules
etc
Antworten:
print("\n".join(sys.path))
(Die äußeren Klammern sind aus Gründen der Python 3-Kompatibilität enthalten und werden in Python 2 normalerweise weggelassen.)
quelle
for line in sys.path: print line
f = lambda *x: null; f( *( print( x ) for x in sys.path ) )
- nur ein Scherz ...Verwenden Sie die Druckfunktion (Python 3.x) oder importieren Sie sie (Python 2.6+):
from __future__ import print_function print(*sys.path, sep='\n')
quelle
Eine weitere gute Option für diese Art von Option ist das
pprint
Modul, das (unter anderem) lange Listen mit einem Element pro Zeile hübsch druckt:>>> 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'] >>>
quelle
a = [1,3,5]
, dann druckt diese Zeile dieses Array nur in einer Zeile. Gibt es eine garantierte Möglichkeitpprint
, es in separaten Zeilen zu drucken?pprint.pprint(x,width=max([len(str(s)) for s in x])+3)
for path in sys.path: print path
quelle
Sven Marnach's Antwort ist so ziemlich alles, hat aber ein allgemeines Problem ... Es wird fehlschlagen, wenn die gedruckte Liste nicht nur Zeichenfolgen enthält.
Also, die allgemeinere Antwort auf "Wie man eine Liste mit durch Zeilenumbrüche getrennten Elementen druckt" ...
print '\n'.join([ str(myelement) for myelement in mylist ])
Andererseits ist der Druckfunktionsansatz, auf den JBernardo hinweist, überlegen. Wenn Sie können, ist es fast immer eine gute Idee, die Druckfunktion anstelle der Druckanweisung zu verwenden.
quelle
Verwenden Sie den Splat-Operator (*).
Standardmäßig druckt der Operator * eine durch Leerzeichen getrennte Liste. Verwenden Sie den
sep
Operator, um das Trennzeichen anzugebenprint(*sys.path, sep = "\n")
quelle
sys.path gibt die Liste der Pfade zurück
ref
Eine Liste von Zeichenfolgen, die den Suchpfad für Module angibt. Initialisiert aus der Umgebungsvariablen PYTHONPATH sowie einem installationsabhängigen Standard.
Wie beim Programmstart initialisiert, ist das erste Element dieser Liste, Pfad [0], das Verzeichnis, das das Skript enthält, mit dem der Python-Interpreter aufgerufen wurde. Wenn das Skriptverzeichnis nicht verfügbar ist (z. B. wenn der Interpreter interaktiv aufgerufen wird oder wenn das Skript aus der Standardeingabe gelesen wird), ist Pfad [0] die leere Zeichenfolge, die Python anweist, zuerst Module im aktuellen Verzeichnis zu suchen. Beachten Sie, dass das Skriptverzeichnis vor den Einträgen eingefügt wird, die als Ergebnis von PYTHONPATH eingefügt wurden .
import sys dirs=sys.path for path in dirs: print(path)
oder Sie können nur den ersten Pfad von drucken
print(dir[0])
quelle