Saya mencoba menjalankan kode di mana saya ingin membaca lembar excel. Masalahnya adalah, jika ada file yang tidak memiliki sheet bernama say: SheetSum Saya tidak dapat memindahkannya ke lokasi kesalahan !! Kode yang saya tulis adalah:
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')
Memberi kesalahan:
[WinError 32] Proses tidak dapat mengakses file karena sedang digunakan oleh proses lain
Saya harus menambahkan try except with finally
blok penuh dan memberi tahu finally
saya harus menutup file dalam hal apa pun seperti:
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')
Jika tidak, file tetap terbuka adalah latar belakang.
Jika finally
ada, itu menentukan penangan pembersihan . The try
klausul dijalankan, termasuk except
dan else
klausa. Jika pengecualian terjadi di salah satu klausa dan tidak ditangani,
pengecualian disimpan sementara . The finally
klausul dijalankan. Jika ada pengecualian yang disimpan maka akan muncul kembali di akhir finally
klausa. Jika finally
klausa menimbulkan pengecualian lain, pengecualian yang disimpan diatur sebagai konteks pengecualian baru.
..Lebih Di Sini