使用 python 将 .ogg 文件上传到 mongodb 的编码是什么?
what is the encoding of upload .ogg file to mongodb with python?
我正在编写一个脚本,用于通过 python 将 .ogg 文件上传到 mongodb。
我用的是python 3.6,最近在学习,所以没什么想法。请帮助我。
这是我的代码:
from pymongo import MongoClient
import gridfs
import os`
db=MongoClient().FypDatabase
fs=gridfs.GridFS(db,collection='video')
fs.put(open('C:\testStream5.ogg','UTF-8'))`
但是它说:
Traceback (most recent call last):
File "C:\Users\chingyi\Desktop\testUp.py", line 16, in <module>
fs.put(open('C:\testStream5.ogg','UTF-8'))
ValueError: invalid mode: 'UTF-8'`
我做了一些研究。我知道我必须像这样在里面写编码:
Streaming file data into mongodb gridfs
所以我写 fs.put(fileName,'UTF-8')
另外,我读了这个页面:
encoding
它说 [
"encoding": 用于此文件的编码。在 Python 2 中,写入文件的任何 unicode 都将转换为 str。在Python3中,写入文件的任何str都将转换为字节。]
OGG Vorbis 文件是二进制文件 - 它们没有文本字符编码。
如果您的数据是 str
,则只需向 GridFs 提供编码参数。同样,如果文件是文本并且不是您平台的默认编码,您只需要将编码传递给 open()
。
在您的情况下,当您处理二进制文件时,您需要将文件模式设置为二进制,这会否定编码参数。二进制只读文件模式给出为 rb
.
因此,您只需要做:
fs.put(open('C:\testStream5.ogg', mode='rb'))
我正在编写一个脚本,用于通过 python 将 .ogg 文件上传到 mongodb。 我用的是python 3.6,最近在学习,所以没什么想法。请帮助我。
这是我的代码:
from pymongo import MongoClient
import gridfs
import os`
db=MongoClient().FypDatabase
fs=gridfs.GridFS(db,collection='video')
fs.put(open('C:\testStream5.ogg','UTF-8'))`
但是它说:
Traceback (most recent call last):
File "C:\Users\chingyi\Desktop\testUp.py", line 16, in <module>
fs.put(open('C:\testStream5.ogg','UTF-8'))
ValueError: invalid mode: 'UTF-8'`
我做了一些研究。我知道我必须像这样在里面写编码: Streaming file data into mongodb gridfs 所以我写 fs.put(fileName,'UTF-8') 另外,我读了这个页面: encoding 它说 [ "encoding": 用于此文件的编码。在 Python 2 中,写入文件的任何 unicode 都将转换为 str。在Python3中,写入文件的任何str都将转换为字节。]
OGG Vorbis 文件是二进制文件 - 它们没有文本字符编码。
如果您的数据是 str
,则只需向 GridFs 提供编码参数。同样,如果文件是文本并且不是您平台的默认编码,您只需要将编码传递给 open()
。
在您的情况下,当您处理二进制文件时,您需要将文件模式设置为二进制,这会否定编码参数。二进制只读文件模式给出为 rb
.
因此,您只需要做:
fs.put(open('C:\testStream5.ogg', mode='rb'))