繁体   English   中英

如何在文件循环后删除文件-Python

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM