【问题标题】:How to remove a file after it has been loop through-Python如何在循环后删除文件-Python
【发布时间】:2021-02-16 18:55:33
【问题描述】:

我在遍历该文件中的数据后尝试删除该文件。它在第一次出现时会删除文件,但是当我第二次尝试循环时它无法打开我的文件。

错误:没有这样的文件或目录: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 循环的末尾,因为它会干扰我的其他逻辑。

【问题讨论】:

  • 您的用例不清楚。您能否添加更多详细信息。同时,我将分享我所说的一个例子。

标签: python sql python-3.x


【解决方案1】:

在开始时添加一个迭代器变量,将其设置为零。在循环的第一次运行期间,对变量执行条件检查,即等于零,条件将被满足,然后删除文件。这应该是一个多行 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

【讨论】:

  • 感谢尝试
  • 它不会删除记录@Teja Goud Kandula
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-20
  • 2022-07-21
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多