文件“<template>中的Python脚本中存在TypeError

2024-10-17 08:23:41 发布

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

我是Python新手,继承了一个引用其他脚本和模块的脚本。当我从Windows命令提示符运行它时,遇到以下消息:

File "<template>", line 37, in top-level template code
TypeError: float argument required, not str

我想解决这个问题,但是我不知道"<template>"引用了哪个.py文件。你知道吗

主文件的代码如下:

from markdown import markdown
import flowerpoint
from re import sub
from HTMLParser import HTMLParser
from os.path import abspath
from os import getcwd
from time import sleep
import jinja2
from jinjaFunctions import jinjaFunctions

class FlowerParser:

    template = None
    outputFile = None
    mdHtml = None
    jinjaHtml = None

    class FlowerHTMLParser(HTMLParser):
        from flowertags import FlowerTags

        curTextbox = None
        slideInitialized = False

        justAddedParagraph = True
        curFont = flowerpoint.PPTextFormat()
        tags = None

        excelMode = False
        excelWorkbooks = {}

        def _getWorkbook(self, workbookName):
            wkbk = self.excelWorkbooks.get(workbookName, None)
            if wkbk:
                return wkbk
            else:
                raise Exception("Workbook not found: %s" % workbookName)

        def handle_starttag(self, tag, attrs):
            self.tags.handleTag(tag, attrs, True)

        def handle_endtag(self, tag):
            self.tags.handleTag(tag, None, False)

        def handle_data(self, data):
            #self.addText(sub(" +"," ",sub("\n"," ",data)))
            self.addText(sub(" +"," ",sub("\n|\r","",sub("\n(?!$)"," ",data))))

        def addText(self, text, format=True, isSpace=False):
            if len(text) == 0:
                return
            self.justAddedParagraph = isSpace
            if self.slideInitialized and self.curTextbox is not None:
                if format:
                    flowerpoint.addText(self.curTextbox, text, self.curFont)
                else:
                    flowerpoint.addText(self.curTextbox, text, None)

        def __init__(self):
            HTMLParser.__init__(self)
            self.tags = self.FlowerTags(self)

        def __init__(self, inputFile, template, outputFile):
            self.template = template
            self.outputFile = outputFile
                with open(inputFile,"r") as mdInputFile:
                    jinjaEnv = jinja2.Environment()
                    jinjaEnv.globals.update(zip=zip, int=int, float=float)
                    jinjaTemplate = jinjaEnv.from_string(mdInputFile.read())
                    jinjaTemplate = jinjaTemplate.render(**jinjaFunctions)

                    self.jinjaHtml = jinjaTemplate
                    print self.jinjaHtml
                    self.mdHtml = sub("&gt;",">",sub("&lt;","<", markdown(jinjaTemplate)))

                    print self.mdHtml

        def run(self):
            flowerpoint.loadFromTemplate(self.template, self.outputFile)
            parser = self.FlowerHTMLParser()
            parser.flowerpoint = flowerpoint
            parser.feed(self.mdHtml)
            flowerpoint.close()

Tags: fromimportselfnonefalsedeftagstemplate
1条回答
网友
1楼 · 发布于 2024-10-17 08:23:41

结果,程序调用了一个降价文件。该降价文件的第37行是:

{{'%.f' %  getCell(excelFile, 'Count', 16, 13)}} Temporary staffing<br>

这需要一个float参数,但引用的单元格(位置16,13)为空,因此不是float。这就产生了错误。你知道吗

相关问题 更多 >