পাইথনে PATH পরিবেশ-পরিবর্তনশীল বিভাজকটি কীভাবে পাবেন?


156

এক্সিকিউটেবল অনুসন্ধানের পথের মতো একাধিক ডিরেক্টরিকে যখন সংক্ষিপ্ত করে তোলা দরকার তখন সেখানে একটি নির্ভরশীল বিভাজক চরিত্র থাকে। এটি উইন্ডোজের ';'জন্য, লিনাক্সের জন্য এটি ':'। পাইথনে কোন চরিত্রটি বিভক্ত হওয়ার কোনও উপায় আছে?

এই প্রশ্নের আলোচনায় আমি কীভাবে পাইথন ব্যবহার করে আমার অজগর পথটি সন্ধান করব? , এটি এটি করবে বলে প্রস্তাবিত os.sep। এই উত্তরটি ভুল, যেহেতু এটি একটি ডিরেক্টরি বা ফাইলের নাম এর উপাদান জন্য বিভাজক কিনা এবং equates '\\'বা '/'

উত্তর:


220

219
যদি, আমার মতো, আপনি এই প্রশ্নের মূল অংশটি না পড়েন এবং কেবল শিরোনামটি দিয়ে চলে যান তবে আপনি ভাববেন যে এটি এমন একটি চরিত্র যা কোনও ফাইল সিস্টেমের পাথের উপাদানগুলিকে আলাদা করে দেয় (লিনাক্স এবং ম্যাকোএসএক্সের ফরোয়ার্ড স্ল্যাশ, উইন্ডোজে ব্যাকস্ল্যাশ)। এটি নয়, এটি চরিত্র যা শেল PATH এর উপাদানগুলিকে পৃথক করে যা এক্সিকিউটেবল কমান্ডগুলি সনাক্ত করতে ব্যবহৃত হয়। os.sepবা os.path.sepফাইল সিস্টেমের পাথগুলির জন্য আপনার যা প্রয়োজন।
পেরি

71
os.pathsepহয় :বা ;যখন os.path.sepহয় \\ বা /- কখনও কখনও পাইথন নাম আমাকে আঘাত হিসাবে অত্যন্ত আপত্তিকররূপে দুর্বল চয়ন করা হয়েছে। এটি .একটি পার্থক্যের পথকে অনেক বড় করে তোলে।
আর্টঅফ ওয়ারফেয়ার

1
@ পেরি আমি প্রশ্নটি সম্পাদনা করেছি। আশা করি আমার সম্পাদনা বিভ্রান্তি দূর করে (আমি ইঙ্গিত দিয়েছি যে এই প্রশ্নটি "ফাইল সিস্টেমের পথের পরিবর্তে" PATH পরিবেশের পরিবর্তনশীল "সম্পর্কে জিজ্ঞাসা করছে)।
ট্রেভর বয়ড স্মিথ

সুতরাং আছে os.sepএবং os.path.sep, যা সমান, পাশাপাশি os.pathsepএবং os.path.pathsepযা সমান। কেন তারা এই কাজ করবে?
বলপয়েন্টবেন 14


12

এটিকে কিছুটা স্পষ্ট করে তোলা (আমার মতো অজগর নতুনদের জন্য)

import os
print(os.pathsep)

4

ঠিক আছে, তাই এখানে আছে:

  • os.pathsepএটি ;এবং যা PATHপরিবেশে পরিবর্তনশীল একটি বিভাজক ;
  • os.path.sepএটি /ইউনিক্স / লিনাক্স এবং \উইন্ডোজে, যা পথের উপাদানগুলির মধ্যে বিভাজক।

মিলটি বিভ্রান্তির উত্স।


আপনি কি প্রশ্নটি পড়েছেন? os.path.sepএকটি ভিন্ন প্রশ্নের উত্তর ।
মার্ক রান্সম

আপনি ঠিক বলেছেন, ধন্যবাদ! আমার বিভ্রান্তি এ থেকে এসেছিল যে আসলে আমি '\' এবং '/' সিস্টেম-নির্দিষ্ট বিভাজক (যা os.path.sep) এর সন্ধান করছিলাম যদিও এই পৃষ্ঠাটিকে অনুসন্ধানের ফলাফলগুলির মধ্যে একটি হিসাবে প্রস্তাব করা হয়েছিল।
ডিভিভি

1

এটি আপনার ওয়ার্কিং ডিরেক্টরি / নির্দিষ্ট ফোল্ডারের জন্য একটি নমুনা পথ -

 import os
 my = os.path.sep+ "testImages" + os.path.sep + "imageHidden.png"
 print(my)

লিনাক্সের জন্য আউটপুট -

/home/*******/Desktop/folder/PlayWithPy/src/testImages/imageHidden.png

উইন্ডোজ জন্য আউটপুট-

C:\\Users\\Administrator\\Desktop\\folder\\tests\\testImages\\imageHidden.png

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