python কিভাবে পাইথনে লিনাক্স এবং উইন্ডোজ উভয়ে "/"(ডিরেক্টরি বিভাজক) ব্যবহার করবেন?




পাইথন দিয়ে প্রোগ্রামিং শেখা (8)

আমি পাইথনে একটি কোড লিখেছি যা একটি ফোল্ডারে কোনও নির্দিষ্ট ফাইল ব্যবহার করে / ব্যবহার করে, যদি আমি উইন্ডোতে কোডটি ব্যবহার করতে চাই তবে এটি কাজ করবে না, এমন একটি উপায় যা আমি উইন্ডোজ এবং লিনাক্সে কোডটি ব্যবহার করতে পারি।

পাইথন ইন আমি এই কোড ব্যবহার করছি:

pathfile=os.path.dirname(templateFile)
rootTree.write(''+pathfile+'/output/log.txt')

আমি উইন্ডোজ মেশিন অনুমান আমার কোড ব্যবহার করব যখন আমার কোড কাজ করবে না।

কিভাবে আমি লিনাক্স এবং উইন্ডোজ উভয় ক্ষেত্রে "/" (ডিরেক্টরি বিভাজক) ব্যবহার করব?


Answer #1

os.path.normpath(pathname) উল্লেখ করা উচিত কারণ এটি উইন্ডোজ / os.path.normpath(pathname) বিভাজকগুলির মধ্যে বিভাজক হিসাবে পরিবর্তিত করে। এটি অপ্রয়োজনীয় উপবৃত্তির রেফারেন্সগুলিও ভেঙে ফেলেছে ... অর্থাৎ, A/B এবং A/foo/../B এবং A/B A/./B সবগুলি A/B হয়ে ওঠে। এবং যদি আপনি উইন্ডোজ হন তবে এগুলি সবাই A\B হয়ে যাবে।


Answer #2

ডিরেক্টরি এবং ফাইল আপনার নাম না নির্মাণ, পাইথন এর অন্তর্ভুক্ত গ্রন্থাগার ব্যবহার করুন।

এই ক্ষেত্রে প্রাসঙ্গিক os.path । বিশেষ করে একটি ডিরেক্টরি এবং একটি ফাইল নাম বা ডিরেক্টরি থেকে একটি নতুন পাথনাম তৈরি করে এবং একটি সম্পূর্ণ পাথ থেকে ফাইল নাম পায় বিভক্ত যা যোগদান।

আপনার উদাহরণ হতে হবে

pathfile=os.path.dirname(templateFile)
p = os.path.join(pathfile, 'output')
p = os.path.join( p, 'log.txt')
rootTree.write(p)

Answer #3

আপনি os.sep ব্যবহার করতে পারেন:

>>> import os
>>> os.sep
'/'

Answer #4

os.path.join() ব্যবহার করুন। উদাহরণ: os.path.join(pathfile,"output","log.txt")

আপনার rootTree.write(os.path.join(pathfile,"output","log.txt")) এটি থাকবে: rootTree.write(os.path.join(pathfile,"output","log.txt"))


Answer #5

কিছু দরকারী লিঙ্ক যা আপনাকে সাহায্য করবে:


Answer #6

একটি import os এবং তারপর os.sep ব্যবহার os.sep


Answer #7

আপনি " os.sep " ব্যবহার করতে পারেন

 import os
 pathfile=os.path.dirname(templateFile)
 directory = str(pathfile)+os.sep+'output'+os.sep+'log.txt'
 rootTree.write(directory)

Answer #8

পাইথন 3.4+ চালানোর জন্য আপনি ভাগ্যবান যথেষ্ট হলে, আপনি pathlib ব্যবহার করতে পারেন:

from pathlib import Path

path = Path(dir, subdir, filename)  # returns a path of the system's path flavour

অথবা, সমানভাবে,

path = Path(dir) / subdir / filename




unix