读取CSV fi时发生赋值错误之前引用的Python局部变量

2024-10-01 07:49:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的python2.7代码。其目的是读取csv文件并运行csv文件中每一行的脚本。在

CSV文件如下所示(无标题,A列中的所有文件名-每行一个文件名,而不是逗号分隔)

ftp_abc_REFRESH_a
ftp_dep_a

该脚本适用于第一个文件,但在第二个文件中失败,并出现以下错误:

^{pr2}$

感谢任何帮助。谢谢:)

剧本:

def myscript(ofile):  

    import time
    import pysftp 
    import sys
    import os
    from datetime import datetime
    import calendar
    import zipfile
    import re

    oupload = pysftp.Connection(host="hostbcd", username="admin", password="abcs")

    d = datetime.utcnow()
    unixtime=calendar.timegm(d.utctimetuple())

    month = datetime.now().strftime("%m")


    string = ofile+month+".*\.txt$"

    possibleFiles = oupload.listdir("/")
    for filename in possibleFiles:
            filedate = re.search(string, filename)
            if filedate:
                file = filename

    timestamp  = oupload.stat(file).st_atime  
    #if timestamp > unixtime - 54050 - 30 days
    if timestamp != unixtime:
        newtime=unixtime + 1800
        abmfile='filename_'
        zipname = abmfile+str(newtime)+'.sync.zip'
        create_zip = zipfile.ZipFile(zipname, 'w', zipfile.ZIP_DEFLATED)
        oupload.get(file,file)
        oupload.close()
        newfilename = abmfile+str(newtime)+'.sync' 
        os.rename(file, newfilename)
        create_zip.write(newfilename)
        create_zip.close()

    else: 
        print "No files found"

import csv
with open("data.csv", 'r') as csv_file:
    reader = csv.reader(csv_file)

    for row in reader:
        ofile = row[0]
        result = myscript(ofile)

Tags: 文件csvimportdatetimeifzipfilenametimestamp
1条回答
网友
1楼 · 发布于 2024-10-01 07:49:49

错误显示了几乎所有信息: UnboundLocalError: local variable 'file' referenced before assignment

这意味着您正在尝试使用之前未设置的内容。在

初始化file的唯一时刻是在if语句if filedate中。您没有传递条件,因此会出现错误和未初始化的file对象。在

相关问题 更多 >