আমি এমন একটি কোড চালানোর চেষ্টা করছিলাম যেখানে আমি এক্সেল শিটগুলি পড়তে চাই। ইস্যুটি ছিল, যদি এমন কোনও ফাইল থাকে যার নাম নেই যার শিট নেই: শিটসাম আমি এটিকে ত্রুটিযুক্ত স্থানে স্থান দিতে সক্ষম নই !! আমি লিখেছি কোডটি ছিল:
def read_file(data_file):
# data_file = '\rr\ex.xlsx'
sheets = {}
try:
print("Reading file: "+data_file)
sheets['df_1'] = pd.read_excel(open(data_file,'rb'), 'SheetSum')
except Exception as excpt:
print("Exception occurred", exc_info=True)
return sheets
read_file(file)
shutil.move( file, dirpath +'\\processed_files')
ত্রুটি প্রদান:
[WinError 32] প্রক্রিয়াটি ফাইলটি অ্যাক্সেস করতে পারে না কারণ এটি অন্য প্রক্রিয়া দ্বারা ব্যবহৃত হচ্ছে
আমাকে পুরো try except with finally
ব্লকটি যুক্ত করতে হয়েছিল এবং বলার finally
মতো যে কোনও ক্ষেত্রে আমার ফাইলটি বন্ধ করতে হবে:
def read_file(data_file):
# data_file = '\rr\ex.xlsx'
sheets = {}
try:
print("Reading file: "+data_file)
sheets_file = open(data_file,'rb')
sheets['df_1'] = pd.read_excel(sheets_file, 'SheetSum')
except Exception as excpt:
print("Exception occurred", exc_info=True)
finally:
sheets_file.close()
return sheets
read_file(file)
shutil.move( file, dirpath +'\\processed_files')
অন্যথায়, ফাইল এখনও খোলা থাকে ব্যাকগ্রাউন্ড।
যদি finally
উপস্থিত থাকে তবে এটি একটি ক্লিনআপ হ্যান্ডলার নির্দিষ্ট করে । try
দফা কোনো সহ মৃত্যুদন্ড কার্যকর করা হয়, except
এবং else
ক্লজ। যদি কোনও ধারাটিতে ব্যতিক্রম ঘটে এবং পরিচালনা না করা হয় তবে
ব্যতিক্রমটি সাময়িকভাবে সংরক্ষণ করা হয় । finally
দফা মৃত্যুদন্ড কার্যকর করা হয়। যদি কোনও সংরক্ষিত ব্যতিক্রম থাকে তবে এটি finally
ধারাটির শেষে পুনরায় উত্থাপিত হবে । finally
ধারাটি যদি অন্য কোনও ব্যতিক্রম উত্থাপন করে তবে সংরক্ষিত ব্যতিক্রমটি নতুন ব্যতিক্রমের প্রসঙ্গ হিসাবে সেট করা আছে।
..More এখানে