任务计划程序中的tempfile.NamedTemporaryFile崩溃

时间:2018-12-03 21:06:30

标签: python windows

我有一个Python脚本,该脚本从SFTP站点下载txt文件,更改标题,编写新的文本文件,然后将其转换为CSV。该脚本可以在IDLE中完美运行。我试图将其设置为Windows Task Scheduler中的日常任务,但由于以下错误而失败:IOError: [Errno 17] No usable temporary file name found

这是代码的相关部分。 headerChangeDict在本节上方定义。错误来自第一行:

with tempfile.NamedTemporaryFile(dir='.', delete=False) as tmp,\
    open(spaces_txt_local_filepath, 'rb') as f:
    r = csv.reader(f, delimiter = '\t')
    w = csv.writer(tmp, delimiter = '\t', quoting=csv.QUOTE_NONNUMERIC)
    header = next(r)
    for h in header:
        newHeader = re.sub("\s+", "_", h.strip())

        for headerChangeStr in headerChangeDict.keys():
            if newHeader == headerChangeStr:
                newHeader = headerChangeStr.replace(headerChangeStr,headerChangeDict[headerChangeStr])

        newHeaderList.append(newHeader)

    w.writerow(newHeaderList)

    for row in r:
        w.writerow(row)

os.rename(tmp.name, new_text_filepath)

1 个答案:

答案 0 :(得分:1)

啊,我明白了。我需要更改dir ='。到指定的临时路径,此脚本在其中写入文本和csv文件。