Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从cgi.FieldStorage实例读取文本_Python_Google App Engine_Csv_Cgi - Fatal编程技术网

Python 从cgi.FieldStorage实例读取文本

Python 从cgi.FieldStorage实例读取文本,python,google-app-engine,csv,cgi,Python,Google App Engine,Csv,Cgi,我正在尝试读取通过多部分POST上传的以制表符分隔的文本文件。我使用Python/Webapp2/Jinja2在googleappengine上运行这段代码 我在下面指出的行中得到了这个错误:AttributeError:two下划线Exit two下划线 你能告诉我我做错了什么,以及如何让这一切顺利进行吗?谢谢 class FileReader(webapp2.RequestHandler): def post(self): field_storage = self.request

我正在尝试读取通过多部分POST上传的以制表符分隔的文本文件。我使用Python/Webapp2/Jinja2在googleappengine上运行这段代码

我在下面指出的行中得到了这个错误:AttributeError:two下划线Exit two下划线

你能告诉我我做错了什么,以及如何让这一切顺利进行吗?谢谢

class FileReader(webapp2.RequestHandler):

def post(self):

    field_storage = self.request.POST.get("file", None)
    if isinstance(field_storage.file, cgi.FieldStorage):

        with field_storage as csvfile:    ## This line causes an error "AttributeError: __exit__"
        reader = csv.reader(csvfile, dialect=csv.excel_tab)

        for row in reader:
            ...

field_storage.file是一个StringIO对象。不需要打开它,因为它已经是一个打开的文件对象

因此,请跳过以下步骤:

reader = csv.reader(field_storage.file, dialect=csv.excel_tab)
行reader=csv.readercsvfile,方言=csv.excel_选项卡应该缩进,如果要使用该文件,后面的所有内容都应该缩进。你的压痕是偶然的吗?