我有一个脚本,它遍历目录中的文件以将它们从一种格式转换为另一种格式。不幸的是,我没有考虑丢失与文件所在的网络驱动器的连接,从而终止脚本的可能性。如果发生错误并作为跟踪脚本进入目录的一种方式,我确实让程序显示了读取的最后一个文件。我想从脚本停止的文件开始而不是从头开始。
下面是我的原始脚本。该脚本从DBF格式转换为CSV。
import os
from dbfread import DBF
import pandas as pd
directory = 'Directory containing files'
for file in os.listdir(directory):
if file.startswith('File_Prefix') and file.endswith('.DBF'):
file_path = os.path.join(directory, file)
print(f'\nReading in {file}...')
dbf = DBF(file_path)
dbf.encoding = 'utf-8'
dbf.char_decode_errors = 'ignore'
print('\nConverting to DataFrame...')
df = pd.DataFrame(iter(dbf))
df.columns.astype(str)
print(df)
print('\nWriting to CSV...')
dest_directory = 'Destination_Directory\\%s.csv' % (File_Prefix + file.strip('.DBF'))
df.to_csv(dest_directory, index = False)
print(f'\nConverted {file} to CSV. Moving to next file...')
elif file.startswith(Another_File_Prefix) and file.endswith('.DBF'):
print('File not needed.')
continue
elif file.endswith('.FPT'):
print('Skipping FPT file.')
continue
elif file.startswith('Another_file_prefix') and file.endswith('.DB~'):
print('All files converted to CSV.')
break
else:
print('\nFile not found or error.')
print(f'Last file read in was {file}.')
在忽略先前转换的文件时,我可以修改哪些内容以指定最后一个读入并从此处开始的文件?目录中文件的名称含糊不清,只是一个字母和一个随着您向下浏览目录而增加的数字(例如,“ A0001.DBF”,“ A0002.DBF”,“ A0003.DBF”等)
我最初的解决方案是将最后一个文件分配给变量,然后修改我的“ if”语句。
start_file = last_file_read_in
for file in os.listdir(directory):
if file == start_file:
#run conversion code
#continue iterating through each file starting from this point