我正在尝试使用以下方法打印出Python路径文件夹:
import sys
print sys.path
Run Code Online (Sandbox Code Playgroud)
输出是这样的:
>>> 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']
Run Code Online (Sandbox Code Playgroud)
如何将它们打印成单独的行,以便我可以正确解析它们?
它应该是这样的:
/usr/bin
/home/student/Desktop
/home/student/my_modules
etc
Run Code Online (Sandbox Code Playgroud)
Sve*_*ach 146
print("\n".join(sys.path))
Run Code Online (Sandbox Code Playgroud)
(外部括号包含在Python 3兼容性中,通常在Python 2中省略.)
JBe*_*rdo 40
使用print函数(Python 3.x)或导入它(Python 2.6+):
from __future__ import print_function
print(*sys.path, sep='\n')
Run Code Online (Sandbox Code Playgroud)
Sin*_*ion 14
处理这种选项的另一个好方法是pprint模块,其中(除其他外)漂亮打印长列表,每行一个元素:
>>> 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']
>>>
Run Code Online (Sandbox Code Playgroud)
小智 12
默认情况下,print打印由空格分隔的参数。使用sep参数指定分隔符:
print(*sys.path, sep="\n")
Run Code Online (Sandbox Code Playgroud)
Sven Marnach的回答几乎就是它,但有一个普遍性问题......如果打印的列表不仅包含字符串,它将失败.
那么,对于"如何打印带有换行符分隔的元素的列表"的更一般的答案......
print '\n'.join([ str(myelement) for myelement in mylist ])
Run Code Online (Sandbox Code Playgroud)
然后,JBernardo指出的打印功能方法更胜一筹.如果可以的话,使用print函数而不是print语句几乎总是一个好主意.