পাইথনে পৃথক রেখায় তালিকার উপাদানগুলি মুদ্রণ


87

আমি এটি ব্যবহার করে পাইথন পাথ ফোল্ডারগুলি মুদ্রণ করার চেষ্টা করছি:

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

4
কেন তাদের পার্স করা দরকার to তারা ইতিমধ্যে একটি তালিকা না?
সিঙ্গেলাইজেশন এলোমিনেশন

উত্তর:


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

(বাইরের প্রথম বন্ধনীগুলি পাইথন 3 সামঞ্জস্যের জন্য অন্তর্ভুক্ত করা হয় এবং সাধারণত পাইথন 2 এ বাদ দেওয়া হয়))


4
আমি জানি, এটি মাপের তালিকার জন্য কোনও ব্যাপার নয়, তবে কেবলমাত্র একটি লুপের ভিতরে মুদ্রণ করা কম স্মৃতিশক্তি গ্রহণ করে এবং এর চেয়ে কিছুটা সহজ।
utdemir

লুপের জন্য আপনি কীভাবে এটি করবেন?
ল্যারি

4
@ ল্যারি:for line in sys.path: print line
ক্যাট্রিয়েল

4
পাই 3: f = lambda *x: null; f( *( print( x ) for x in sys.path ) )- খালি রসিকতা করছি ...
প্রবাহিত করুন

60

মুদ্রণ ফাংশন (পাইথন 3.x) ব্যবহার করুন বা এটি আমদানি করুন (পাইথন ২.6++):

from __future__ import print_function

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

6
নন-স্ট্রিং উপাদান যুক্ত একটি তালিকা মুদ্রণের সময় এই উত্তরটি সেরা।
বলপয়েন্টবেন

19

এই ধরণের বিকল্প পরিচালনার জন্য আরেকটি ভাল বিকল্প হল 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মুদ্রণ করবে ... আলাদা লাইনে এটি প্রিন্ট করার কোনও গ্যারান্টিযুক্ত উপায় আছে ?
অবিচ্ছিন্নতা

4
@ 太極 者 無極 而 生pprint.pprint(x,width=max([len(str(s)) for s in x])+3)
টিটিবি


8

সোভেন মারনাচের উত্তরটি বেশ উত্তম, তবে একটি সাধারণতার সমস্যা রয়েছে ... তালিকাটি মুদ্রণ করা থাকলে কেবল স্ট্রিং না থাকলে এটি ব্যর্থ হবে।

সুতরাং, "নতুন লাইনের দ্বারা পৃথক উপাদানগুলির সাথে কীভাবে একটি তালিকা মুদ্রণ করা যায়" এর আরও সাধারণ উত্তর ...

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

তারপরে আবার, মুদ্রণ ফাংশন পদ্ধতির জেবার্নার্ডো পয়েন্ট আউটটি উচ্চতর। যদি আপনি পারেন তবে মুদ্রণ বিবৃতিটির পরিবর্তে মুদ্রণ ফাংশনটি ব্যবহার করা প্রায়শই একটি ভাল ধারণা।


4
আপনার জেনারেটর এক্সপ্রেশন ব্যবহার করা যেতে পারে সেখানে তালিকা অনুধাবন ব্যবহার করা উচিত এবং আপনি এখানে অবশ্যই ব্যবহার করতে পারেন one এই উত্তরটি একবার দেখুন । আপনি এই
যাবেন

4
@ Sнаđошƒаӽ এই ক্ষেত্রে সত্য নয়, দেখুন stackoverflow.com/a/37782238/5320906
snakecharmerb

@ স্নাকচেচারবারব এটি জানা ভাল। ধন্যবাদ ভাগ করে নেওয়ার জন্য অনেক!
এস

2

স্প্ল্যাট অপারেটর (*) ব্যবহার করুন

ডিফল্টরূপে, * অপারেটর প্রিন্টের তালিকাটি স্থান দ্বারা পৃথক করে। sepডিলিমিটার নির্দিষ্ট করতে অপারেটরটি ব্যবহার করুন

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

4
এটি করার নতুন এবং স্মার্ট উপায় এটি! বিভ্রান্তিকর এবং ভার্বোজ ল্যাম্বডা ব্যবহার করে বা মানচিত্র / যোগদানের চেয়ে অনেক বেশি ভাল । "স্প্ল্যাট" এখানে আরও ভালভাবে ব্যাখ্যা করা হয়েছে
not2qubit

0

sys.path পাথের তালিকা প্রদান করে

রেফ

sys.path

স্ট্রিংগুলির একটি তালিকা যা মডিউলগুলির জন্য অনুসন্ধানের পথটি নির্দিষ্ট করে। পরিবেশ পরিবর্তনশীল পাইথনপথ থেকে শুরু করে , ইনস্টলেশন-নির্ভর ডিফল্ট।

প্রোগ্রাম শুরু হওয়ার পরে, সূচকের প্রথম আইটেম, পাথ [0], হ'ল ডিরেক্টরিটি স্ক্রিপ্টযুক্ত পাইথন ইন্টারপ্রেটারকে অনুরোধ করার জন্য ব্যবহৃত হত। যদি স্ক্রিপ্ট ডিরেক্টরিটি উপলভ্য না হয় (উদাহরণস্বরূপ যদি ইন্টারপ্রিটার ইন্টারেক্টিভভাবে ডাকা হয় বা স্ক্রিপ্টটি স্ট্যান্ডার্ড ইনপুট থেকে পড়ে থাকে), পথ [0] হ'ল ফাঁকা স্ট্রিং, যা পাইথনকে বর্তমান ডিরেক্টরিতে প্রথম মডিউল অনুসন্ধান করতে নির্দেশ দেয়। লক্ষ করুন যে পাইথনপথের ফলে প্রবেশের প্রবেশের আগে স্ক্রিপ্ট ডিরেক্টরিটি সন্নিবেশ করা হয়েছে ।

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

অথবা আপনি কেবল প্রথম পাথ মুদ্রণ করতে পারেন

print(dir[0])

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.