কোড:
file('pinax/media/a.jpg', 'wb')
open
পরিবর্তে file
, যা পাইথন 2 অবচিত এবং পাইথন 3. দেখুন অপসারণ করা হয়েছে stackoverflow.com/questions/112970/...
কোড:
file('pinax/media/a.jpg', 'wb')
open
পরিবর্তে file
, যা পাইথন 2 অবচিত এবং পাইথন 3. দেখুন অপসারণ করা হয়েছে stackoverflow.com/questions/112970/...
উত্তর:
ফাইল মোড , লিখুন এবং বাইনারি। যেহেতু আপনি একটি .jpg ফাইল লিখছেন তাই এটি দুর্দান্ত দেখাচ্ছে।
তবে আপনি যদি সেই jpg ফাইলটি পড়তে চান তবে আপনার ব্যবহার করা দরকার 'rb'
অধিক তথ্য
উইন্ডোজে, মোডে যুক্ত 'বি' ফাইলটি বাইনারি মোডে খোলে, তাই এখানে 'আরবি', 'ডাব্লুবি', এবং 'আর + বি' এর মতো মোডগুলিও রয়েছে। উইন্ডোজের পাইথন পাঠ্য এবং বাইনারি ফাইলগুলির মধ্যে পার্থক্য তৈরি করে; পাঠ্য ফাইলগুলিতে প্রান্তের অক্ষরের অক্ষরগুলি স্বয়ংক্রিয়ভাবে কিছুটা পরিবর্তিত হয় যখন ডেটা পড়া বা লেখা হয়। পর্দার আড়ালে থাকা এই ফাইলটি ডেটা ফাইলের জন্য সংশোধন করা ASCII পাঠ্য ফাইলগুলির জন্য ঠিক আছে, তবে এটি জেপিইজি বা এক্সই ফাইলগুলিতে বাইনারি ডেটাগুলিকে দূষিত করবে।
fd.write("foo\n")
আসলে ডিস্কে লেখেন foo\r\n
(নোটটি নোট করুন \r
)।
wb
ইঙ্গিত করে যে ফাইলটিতে বাইনারি মোডে লেখার জন্য খোলা হয়।
বাইনারি মোডে লেখার সময় পাইথন ফাইলটিতে লিখিত হওয়ার সাথে সাথে ডেটাতে কোনও পরিবর্তন করে না। পাঠ্য মোডে (যখন b
ঠিক হিসাবে w
বা যখন আপনি পাঠ্য মোড নির্দিষ্ট করে থাকেন তখন বাদ দেওয়া হয় wt
) তবে পাইথন ডিফল্ট পাঠ্য এনকোডিংয়ের উপর ভিত্তি করে পাঠ্যটি এনকোড করবে। অতিরিক্তভাবে, পাইথন লাইন এন্ডিংস ( \n
) কে প্ল্যাটফর্ম-নির্দিষ্ট লাইন সমাপ্তিতে রূপান্তরিত করে , যা বাইনারি ফাইলকে exe
বা png
ফাইলের মতো দূষিত করে ।
পাঠ্য মোড তাই পাঠ্য ফাইলগুলি লেখার সময় ব্যবহার করা উচিত (প্লেইন পাঠ্য বা CSV এর মতো কোনও পাঠ্য-ভিত্তিক ফর্ম্যাট ব্যবহার করা হোক না), যখন চিত্রগুলির মতো অ-পাঠ্য ফাইলগুলি লেখার সময় বাইনারি মোড অবশ্যই ব্যবহার করা উচিত।
তথ্যসূত্র:
https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files https://docs.python.org/3/library/function.html#open
wb
অপশনটি দিয়ে খোলা একটি পাঠ্য ফাইল (সিএসভি ফর্ম্যাট, এটি শেষ পর্যন্ত যে এতটা গুরুত্বপূর্ণ তা নয়) লিখতে গিয়ে আমার একটি ত্রুটি হয়েছিল । w
পরিবর্তে বিকল্পটি ব্যবহার করে , আমি এটি সঠিকভাবে কাজ করতে সক্ষম হয়েছি।
b
উইন্ডোজে মোডটির কেবলমাত্র প্রভাব ছিল। এটি এখন ডকুমেন্টেশন থেকে সরিয়ে ফেলা হয়েছে এবং বাইনারি মোডটি "সমস্ত ফাইলের জন্য ব্যবহার করা উচিত যা পাঠ্য ধারণ করে না"।
এটি সেই মোড যা আপনি ফাইলটি খুলছেন opening "ডাব্লুবি" এর অর্থ আপনি ফাইল (ডাব্লু) এ লিখছেন এবং আপনি বাইনারি মোডে (খ) লিখছেন।
আরো জন্য ডকুমেন্টেশন পরীক্ষা করে দেখুন: দাবি
open
পরিবর্তে আপনি ব্যবহার বিবেচনা করা উচিতfile
।file
পাইথন 2 এ অবহেলা করা হয়েছিল (কোন সংস্করণটি খুঁজে পেল না) এবং পাই 3 কে সরানো হয়েছে। (ধন্যবাদ স্কট) আরও তথ্যের জন্য এই প্রশ্নটি দেখুন ।