पायथन में अलग लाइनों पर मुद्रण सूची तत्व


84

मैं इसका उपयोग करते हुए पायथन पथ फ़ोल्डर्स को प्रिंट करने की कोशिश कर रहा हूं:

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

1
आपको उन्हें पार्स करने की आवश्यकता क्यों है। क्या वे पहले से ही एक सूची नहीं हैं?
— सिंगलएनजेशन इम्प्लाइमेंट

जवाबों:


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

(बाहरी कोष्ठक अजगर 3 संगतता के लिए शामिल किए गए हैं और आमतौर पर अजगर 2 में छोड़े गए हैं)


1
मुझे पता है, यह उस आकार की सूची के लिए कोई फर्क नहीं पड़ता, लेकिन सिर्फ एक लूप के अंदर मुद्रण करने से इसकी मेमोरी कम होती है और इससे थोड़ा सरल होता है।
— उदिमिर

आप इसे लूप के लिए कैसे करेंगे?
— लैरी

2
@ लॉरी:for line in sys.path: print line
— कैटरील

4
py3: f = lambda *x: null; f( *( print( x ) for x in sys.path ) )- सिर्फ मजाक करते हुए ...
— प्रवाह करें

57

प्रिंट फ़ंक्शन (Python 3.x) का उपयोग करें या इसे आयात करें (Python 2.6+):

from __future__ import print_function

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

6
गैर-स्ट्रिंग तत्वों वाली सूची को प्रिंट करते समय यह उत्तर सबसे अच्छा है।
— BallpointBen

17

इस तरह के विकल्प को संभालने के लिए एक और अच्छा विकल्प 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
यदि a = [1,3,5], तो वह लाइन केवल एक पंक्ति में इस सरणी को प्रिंट करेगी ... क्या pprintअलग लाइनों पर इसे प्रिंट करने के लिए कोई गारंटी तरीका है ?
— एकाधिकार

1
@ @ T 無極 而 生pprint.pprint(x,width=max([len(str(s)) for s in x])+3)
— ttb


8

स्वेन मार्नाच का जवाब बहुत ज्यादा है, लेकिन एक सामान्यता मुद्दा है ... यह विफल हो जाएगा अगर सूची में मुद्रित किया जा रहा है बस तार नहीं है।

तो, "सामान्य रूप से नई सूचियों द्वारा अलग किए गए तत्वों के साथ एक सूची कैसे प्रिंट करें" इसका अधिक सामान्य उत्तर ...

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

तो फिर, प्रिंट समारोह दृष्टिकोण JBernardo बताते हैं कि बेहतर है। यदि आप कर सकते हैं, तो प्रिंट स्टेटमेंट के बजाय प्रिंट फ़ंक्शन का उपयोग करना लगभग हमेशा एक अच्छा विचार है।


1
आपको सूची की समझ का उपयोग करने से बचना चाहिए जहां एक जनरेटर अभिव्यक्ति का उपयोग किया जा सकता है, और आप निश्चित रूप से यहां एक का उपयोग कर सकते हैं। इस जवाब पर एक नज़र डालें । आपको उस उत्तर में अधिक उपयोगी लिंक मिलेंगे, जैसे यह एक
— SANƒошӽа

1
@ Sain thisошƒаӽ इस मामले में सच नहीं है, देखें stackoverflow.com/a/37782238/5320906
— snakecharmerb

@snakecharmerb यह जानना अच्छा है। साझा करने के लिए बहुत बहुत धन्यवाद!
— Sain:ошƒаӽ

1

स्पैट ऑपरेटर का उपयोग करें (*)

डिफ़ॉल्ट रूप से, * ऑपरेटर प्रिंट सूची अंतरिक्ष से अलग हो जाती है। sepपरिसीमन निर्दिष्ट करने के लिए ऑपरेटर का उपयोग करें

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

1
यह ऐसा करने का नया और स्मार्ट तरीका है! भ्रामक और वर्बोस लैम्बडा एस या मैप / जॉइन का उपयोग करने से बहुत बेहतर है । "स्पैट" को यहां बेहतर तरीके से समझाया गया है ।
— not2qubit

0

sys.path रास्तों की सूची लौटाता है

संदर्भ

sys.path

स्ट्रिंग्स की एक सूची जो मॉड्यूल के लिए खोज पथ को निर्दिष्ट करती है। पर्यावरण चर PYTHONPATH से आरंभिक , साथ ही एक इंस्टॉलेशन-निर्भर डिफ़ॉल्ट।

प्रोग्राम स्टार्टअप पर आरंभिक रूप से, इस सूची का पहला आइटम, पथ [0], वह निर्देशिका है जिसमें स्क्रिप्ट शामिल है जिसका उपयोग पायथन इंटरप्रेटर को लागू करने के लिए किया गया था। यदि स्क्रिप्ट निर्देशिका उपलब्ध नहीं है (उदाहरण के लिए यदि इंटरप्रेन्योर अंतःक्रियात्मक रूप से आमंत्रित किया जाता है या यदि स्क्रिप्ट को मानक इनपुट से पढ़ा जाता है), तो पथ [0] खाली स्ट्रिंग है, जो पहले पायथन को वर्तमान निर्देशिका में खोज मॉड्यूल को निर्देशित करता है। ध्यान दें कि स्क्रिप्ट निर्देशिका PYTHONPATH के परिणामस्वरुप प्रविष्ट की गई प्रविष्टियों से पहले डाली जाती है ।

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

या आप केवल पहले पथ को ही प्रिंट कर सकते हैं

print(dir[0])

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.