在Python中分隔行上打印列表元素

时间:2011-05-29 12:32:11

标签: python

我正在尝试使用以下方法打印出Python路径文件夹:

import sys
print sys.path

输出如下:

>>> 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']

如何将它们打印成单独的行,以便我能正确解析它们?

应该是这样的:

/usr/bin
/home/student/Desktop
/home/student/my_modules
etc

10 个答案:

答案 0 :(得分:131)

print("\n".join(sys.path))

(外部括号包含在Python 3兼容性中,通常在Python 2中省略。)

答案 1 :(得分:33)

使用print函数(Python 3.x)或导入它(Python 2.6 +):

from __future__ import print_function

print(*sys.path, sep='\n')

答案 2 :(得分:16)

for path in sys.path:
    print path

答案 3 :(得分: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']
>>> 

答案 4 :(得分:7)

Sven Marnach的答案非常接近,但有一个普遍性问题......如果正在打印的列表不仅仅包含字符串,它将会失败。

因此,对“如何打印包含由换行符分隔的元素的列表”的更一般的答案......

print '\n'.join([ str(myelement) for myelement in mylist ])

然后,JBernardo指出的打印功能方法更胜一筹。如果可以,使用print函数而不是print语句几乎总是一个好主意。

答案 5 :(得分:3)

尝试以下方法:

import sys
for row in sys.path:
     print(row)

答案 6 :(得分:1)

使用splat运算符(*)

默认情况下,*运算符将打印以空格分隔的列表。使用sep运算符指定分隔符

print(*sys.path, sep = "\n")

答案 7 :(得分:1)

基于 ref 的稍微通用的解决方案,甚至适用于 join

pandas.Timestamp

答案 8 :(得分:0)

sys.path返回路径列表

ref

sys.path

一个字符串列表,它指定模块的搜索路径。从环境变量 PYTHONPATH 初始化,再加上依赖于安装的默认值。

在程序启动时初始化,此列表的第一项path [0]是包含用于调用Python解释器的脚本的目录。如果脚本目录不可用(例如,以交互方式调用解释器或从标准输入中读取脚本),则path [0]为空字符串,该字符串将引导Python首先搜索当前目录中的模块。请注意,由于 PYTHONPATH 的结果,脚本目录已插入条目之前。

import sys
dirs=sys.path
for path in dirs:
   print(path)

或者您只能通过以下方式打印第一个路径

print(dir[0])

答案 9 :(得分:0)

您还可以将列表转换为大小为 len(sys.path)

的 numpy 数组
print(np.array(sys.path).reshape(-1,1))

输出:

[['.']
 ['/usr/bin']
 ['/home/student/Desktop']
 ['/home/student/my_modules']
 ['/usr/lib/python2.6']
 ['/usr/lib/python2.6/plat-linux2']
 ['/usr/lib/python2.6/lib-tk']
 ['/usr/lib/pyton2.6/lib-old']
 ['/usr/lib/python2.6/lib-dynload']
 ['/usr/local/lib/python2.6/dist-packages']
 ['/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/python2.6/dist-packages/wx-2.8-gtk2-unicode']]
相关问题