আপনি যদি চান তা ইতিমধ্যে জানেন তবে একক কোডের কোডের মধ্যে ফাইল আকারগুলি মুদ্রণের জন্য দ্রুত এবং অপেক্ষাকৃত সহজ-সরল পন্থার জন্য নীচে দেখুন। এই ওয়ান- লাইনারগুলি এখানে সিপিপিজার দুর্দান্ত উত্তরটি একত্রিত করেছে যে আমি এখানে পড়া কিছু হ্যান্ডেল ফর্ম্যাটিং ট্রিকস সহ হাজার বিভাজক হিসাবে কমা দিয়ে সংখ্যা কীভাবে মুদ্রণ করব? ।
বাইটস
print ('{:,.0f}'.format(os.path.getsize(filepath))+" B")
কিলোবিটস
print ('{:,.0f}'.format(os.path.getsize(filepath)/float(1<<7))+" kb")
কিলোবাইটস
print ('{:,.0f}'.format(os.path.getsize(filepath)/float(1<<10))+" KB")
মেগাবাইটস
print ('{:,.0f}'.format(os.path.getsize(filepath)/float(1<<17))+" mb")
মেগাবাইট
print ('{:,.0f}'.format(os.path.getsize(filepath)/float(1<<20))+" MB")
গিগাবিটস
print ('{:,.0f}'.format(os.path.getsize(filepath)/float(1<<27))+" gb")
গিগাবাইট
print ('{:,.0f}'.format(os.path.getsize(filepath)/float(1<<30))+" GB")
টেরাবাইট
print ('{:,.0f}'.format(os.path.getsize(filepath)/float(1<<40))+" TB")
স্পষ্টতই তারা ধরে নিয়েছে যে আপনি মোটামুটিভাবে আপনি যে আকারটি শুরুতে মোকাবেলা করতে যাচ্ছেন তা জানেন, যা আমার ক্ষেত্রে (দক্ষিণ পশ্চিম লন্ডন টিভিতে ভিডিও সম্পাদক) এমবি এবং মাঝে মাঝে ভিডিও ক্লিপের জন্য জিবি।
পাথলিবের ব্যবহার আপডেট
করুন হিল্ডির মন্তব্যের জবাবে, কেবল পাইথন স্ট্যান্ডার্ড লাইব্রেরিটি ব্যবহার করে একটি কমপ্যাক্ট ফাংশন (জিনিসগুলিকে মার্জ করার পরিবর্তে 'পারমাণবিক' রাখার জন্য) আমার পরামর্শটি এখানে দেওয়া হয়েছে:
from pathlib import Path
def get_size(path = Path('.')):
""" Gets file size, or total directory size """
if path.is_file():
size = path.stat().st_size
elif path.is_dir():
size = sum(file.stat().st_size for file in path.glob('*.*'))
return size
def format_size(path, unit="MB"):
""" Converts integers to common size units used in computing """
bit_shift = {"B": 0,
"kb": 7,
"KB": 10,
"mb": 17,
"MB": 20,
"gb": 27,
"GB": 30,
"TB": 40,}
return "{:,.0f}".format(get_size(path) / float(1 << bit_shift[unit])) + " " + unit
>>> format_size("d:\\media\\bags of fun.avi")
'38 MB'
>>> format_size("d:\\media\\bags of fun.avi","KB")
'38,763 KB'
>>> format_size("d:\\media\\bags of fun.avi","kb")
'310,104 kb'