আমার এইগুলির একটির মতো ফাইলনাম থাকলে:
1.1.1.1.1.jpg
1.1.jpg
1.jpg
এক্সটেনশন ছাড়াই আমি কীভাবে কেবল ফাইলের নাম পেতে পারি? একটি রেজেক্স উপযুক্ত হবে?
আমার এইগুলির একটির মতো ফাইলনাম থাকলে:
1.1.1.1.1.jpg
1.1.jpg
1.jpg
এক্সটেনশন ছাড়াই আমি কীভাবে কেবল ফাইলের নাম পেতে পারি? একটি রেজেক্স উপযুক্ত হবে?
উত্তর:
বেশিরভাগ ক্ষেত্রে, আপনার এটির জন্য একটি রেজেেক্স ব্যবহার করা উচিত নয়।
os.path.splitext(filename)[0]
এটি .bashrcপুরো নামটি রেখে সঠিকর মতো কোনও ফাইলের নামও পরিচালনা করবে ।
basename[:-len(".tar.gz")]এই জন্য ব্যবহার ।
git-1.7.8.tar। কলকারী কয়টি বিন্দু ছাড়তে চায় তা সঠিকভাবে অনুমান করার কোনও উপায় নেই, সুতরাং splitext()কেবলমাত্র সর্বশেষটি মুছে ফেলবে। আপনি যদি এজ-কেসগুলি হ্যান্ডেল করতে চান তবে আপনাকে .tar.gzএটি হাতে হাতে করতে হবে। স্পষ্টতই, আপনি সমস্ত বিন্দুগুলি ছিনিয়ে নিতে পারবেন না, যেহেতু আপনি শেষ করবেন git-1।
>>> import os
>>> os.path.splitext("1.1.1.1.1.jpg")
('1.1.1.1.1', '.jpg')
যদি আমাকে রেইজেক্সের সাহায্যে এটি করতে হত তবে আমি এটি এটি করতাম:
s = re.sub(r'\.jpg$', '', s)
আপনি স্টেম ব্যবহার করতে পারেন ফাইলের নাম পেতে পদ্ধতিটি ।
এখানে একটি উদাহরণ:
from pathlib import Path
p = Path(r"\\some_directory\subdirectory\my_file.txt")
print(p.stem)
# my_file