从Paramiko获取文件时如何设置文件编码

时间:2018-03-08 13:30:22

标签: python encoding sftp paramiko

我正在使用最新的 Python 3 。 我在尝试使用 Paramiko 获取文件时尝试设置文件编码

在我的代码片段下面:

using paramiko
using csv

...

self._sftp = paramiko.SFTPClient.from_transport(self._transport)

with self._sftp.file(filename) as csv_file:
    reader = csv.DictReader(csv_file, delimiter=';')
    for line in reader:
        data.customer_name = line["customer_name"]

我正在尝试解析的文件是以 ISO-8859-1 (Latin-1)编码的文本文件

该文件包含重音符号,如“èé”。

当我启动脚本时,我得到以下例外:

def decode(self, input, final=False):
    # decode input (taking the buffer into account)
    data = self.buffer + input
   (result, consumed) = self._buffer_decode(data, self.errors, final)
E       UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd4 in position 691: invalid continuation byte

此行引发了异常:

for line in reader:

我尝试搜索解决方案,以便在从Paramiko获取文件时强制进行编码,但我看不到任何编码参数。

感谢您的帮助

0 个答案:

没有答案