Owe*_*ell 2 python api dropbox
我正在尝试使用以下代码将文本文件上传到Dropbox:
def uploadFile(file):
f = open('logs/%s.txt' % file)
response = client.put_file('/%s.txt' % file, f)
print "Uploaded log file %s" % file
Run Code Online (Sandbox Code Playgroud)
连接到Dropbox工作得非常好,就在我上传文件时我收到了这个错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\dropbox_python_sdk-1.5.1-py2.7.egg\dropbox
\client.py", line 352, in put_file
return self.rest_client.PUT(url, file_obj, headers)
File "C:\Python27\lib\site-packages\dropbox_python_sdk-1.5.1-py2.7.egg\dropbox
\rest.py", line 265, in PUT
return cls.IMPL.PUT(*n, **kw)
File "C:\Python27\lib\site-packages\dropbox_python_sdk-1.5.1-py2.7.egg\dropbox
\rest.py", line 211, in PUT
return self.request("PUT", url, body=body, headers=headers, raw_response=raw
_response)
File "C:\Python27\lib\site-packages\dropbox_python_sdk-1.5.1-py2.7.egg\dropbox
\rest.py", line 174, in request
raise util.AnalyzeFileObjBug(clen, bytes_read)
dropbox.util.AnalyzeFileObjBug:
Expected file object to have 18 bytes, instead we read 17 bytes.
File size detection may have failed (see dropbox.util.AnalyzeFileObj)
Run Code Online (Sandbox Code Playgroud)
谷歌没有给我任何帮助.
听起来你是新线统一的受害者.文件对象报告文件大小为18个字节("abcdefghijklmnop\r\n")但您只读取17个字节("abcdefghijklmnop\n").
以二进制模式打开文件以避免这种情况:
f = open('logs/%s.txt' % file, 'rb')
Run Code Online (Sandbox Code Playgroud)
默认设置是使用文本模式,该模式可以
'\n'在写入时将字符转换为特定于平台的表示形式,然后在读取时将其转换
| 归档时间: |
|
| 查看次数: |
384 次 |
| 最近记录: |