Python瓶子:fileupload对象具有模式';rb+';。对于例如Pandas read_csv方法,我需要模式为';rt';

Python瓶子:fileupload对象具有模式';rb+';。对于例如Pandas read_csv方法,我需要模式为';rt';,python,pandas,bottle,Python,Pandas,Bottle,我正在将文件上载到本地瓶子Web服务器。如果我使用file\u selected=request.files.get('file'),file\u selected将成为包含上载文件内容的临时缓冲区的文件句柄。但是,附加到此文件句柄的模式为“rb+”,它会中断多个csv操作 我可以在上传的缓冲区上使用come命令,但不是全部 来自瓶子进口请求的 作为pd进口熊猫 file\u selected=request.files.get('文件') d=pd.read_csv(选中文件,sep=“\t”

我正在将文件上载到本地瓶子Web服务器。如果我使用
file\u selected=request.files.get('file')
file\u selected
将成为包含上载文件内容的临时缓冲区的文件句柄。但是,附加到此文件句柄的模式为“rb+”,它会中断多个csv操作

我可以在上传的缓冲区上使用come命令,但不是全部

来自瓶子进口请求的

作为pd进口熊猫
file\u selected=request.files.get('文件')
d=pd.read_csv(选中文件,sep=“\t”,头=0)#
#但是
d=pd.read_csv(文件_选择,sep=“\t”,头=0,skipfooter=2)#给出错误
错误:pandas.errors.parserror:迭代器应该返回字符串,而不是字节(您是否以文本模式打开了文件?)。

键在这里:

file_selected = request.files.get('file')
要使用此文件,需要将其从缓冲区中取出。HTML文件上载文件只是将字节发送到缓冲区

            # Creating sample file in the network-drive
            sample_stream = request.files.get('file')
            sample_file = open(sample_filename, "w") # or possible 'wb'
            for line in sample_stream: 
                sample_file.write(line)
            sample_file.close()

现在您可以打开文件了,所有的python功能都将正常工作

非常感谢。我曾希望我可以跳过编写文件,但负载非常小。它通常在python2.7天内工作,但切换到unicode确实会将文本作为二进制文件处理