Я пытаюсь распечатать папки пути 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
Ответы:
print("\n".join(sys.path))
(Внешние скобки включены для совместимости с Python 3 и обычно опускаются в Python 2.)
источник
for line in sys.path: print line
f = lambda *x: null; f( *( print( x ) for x in sys.path ) )
- шучу ...Используйте функцию печати (Python 3.x) или импортируйте ее (Python 2.6+):
from __future__ import print_function print(*sys.path, sep='\n')
источник
Еще один хороший вариант для работы с такими опциями - это
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'] >>>
источник
a = [1,3,5]
, то эта строка будет печатать этот массив только в одной строке ... есть ли гарантированный способpprint
распечатать его в отдельных строках?pprint.pprint(x,width=max([len(str(s)) for s in x])+3)
for path in sys.path: print path
источник
Ответ Свена Марнака в значительной степени таков, но имеет одну проблему общего характера ... Он потерпит неудачу, если печатаемый список не просто содержит строки.
Итак, более общий ответ на вопрос «Как распечатать список с элементами, разделенными символами новой строки» ...
print '\n'.join([ str(myelement) for myelement in mylist ])
С другой стороны, JBernardo отмечает, что функция печати лучше. Если вы можете, использование функции печати вместо оператора печати почти всегда является хорошей идеей.
источник
Используйте оператор splat (*)
По умолчанию оператор * выводит список через пробел. Используйте
sep
оператор, чтобы указать разделительprint(*sys.path, sep = "\n")
источник
sys.path возвращает список путей
ссылка
Список строк, определяющих путь поиска модулей. Инициализируется из переменной среды PYTHONPATH плюс значение по умолчанию, зависящее от установки.
Как инициализируется при запуске программы, первый элемент этого списка, путь [0], - это каталог, содержащий сценарий, который использовался для вызова интерпретатора Python. Если каталог сценария недоступен (например, если интерпретатор вызывается в интерактивном режиме или если сценарий читается со стандартного ввода), путь [0] является пустой строкой, которая направляет Python на поиск модулей в текущем каталоге в первую очередь. Обратите внимание, что каталог сценария вставлен перед записями, вставленными в результате PYTHONPATH .
import sys dirs=sys.path for path in dirs: print(path)
или вы можете распечатать только первый путь
print(dir[0])
источник