[英]How to properly iterate through an array of rows from a CSV file, after the array has been created?
[英]How to remove a file after it has been loop through-Python
在遍历该文件中的数据后,我试图删除该文件。 它在第一次通过时删除了文件,但是当我第二次尝试循环时它无法打开我的文件。
错误:没有这样的文件或目录:C:\ \ \****\*****\\NEWHIRES_MMDDYYYY20210128 (4).CSV'
sql = ("select * from tblTalentReef")
mycursor.execute(sql)
export_rows = mycursor.fetchall() or []
for export_rec in export_rows:
pa_compid = export_rec['pa_compid']
pcompany = export_rec['compcode']
filename = export_rec['filename']
strFname = export_rec['fname']
strLname = export_rec['lname']
strThisFileName = filename
strFileList = strThisFileName + chr(10)
strFileName = r"C:\****\****\*****\******\\" + strThisFileName
strSavedFileName = r"C:\*****\****\*****\******\processed\\" + strThisFileName
#Copy File to Destination
dest = shutil.copyfile(strFileName,strSavedFileName)
#Delete File
os.remove(strFileName)
我不能把它放在 for 循环的末尾,因为它会干扰我的其他逻辑。
通过将迭代器变量设置为零来在开始处添加一个迭代器变量。 在循环的第一次运行期间,对变量即等于零执行条件检查,条件将被满足,然后删除文件。 这应该是一个多行的 if 语句语句。 删除文件后,将迭代器变量递增为 1。 在条件检查中,它与零进行比较,这意味着执行不会再次进入 if 块内部,并且您的文件在第一次执行后不会被删除。
iterator = 1
sql = ("select * from tblTalentReef")
mycursor.execute(sql)
export_rows = mycursor.fetchall() or []
for export_rec in export_rows:
pa_compid = export_rec['pa_compid']
pcompany = export_rec['compcode']
filename = export_rec['filename']
strFname = export_rec['fname']
strLname = export_rec['lname']
strThisFileName = filename
strFileList = strThisFileName + chr(10)
strFileName = r"C:\****\****\*****\******\\" + strThisFileName
strSavedFileName = r"C:\*****\****\*****\******\processed\\" + strThisFileName
#Copy File to Destination
dest = shutil.copyfile(strFileName,strSavedFileName)
#Delete the File only for the first time
if iterator == 0
os.remove(strFileName)
iterator += 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.