在Python3中,解码将行分解为字符

在Python3中,解码将行分解为字符,python,python-3.x,Python,Python 3.x,我正在通过samba共享读取CSV文件。我的CSV文件格式 hello;world 1;2; Python代码 import urllib from smb.SMBHandler import SMBHandler PATH = 'smb://myusername:mypassword@192.168.1.200/myDir/' opener = urllib.request.build_opener(SMBHandler) fh = opener.open(PATH + 'myFileN

我正在通过samba共享读取CSV文件。我的CSV文件格式

hello;world
1;2;
Python代码

import urllib
from smb.SMBHandler import SMBHandler

PATH = 'smb://myusername:mypassword@192.168.1.200/myDir/'

opener = urllib.request.build_opener(SMBHandler)
fh = opener.open(PATH + 'myFileName')
data = fh.read().decode('utf-8')
print(data) // This prints the data right
csvfile = csv.reader(data, delimiter=';')
for myrow in csvfile:
    print(myrow) // This just prints ['h']. however it should print(hello;world)
    break
fh.close()
问题是,在解码到
utf-8
后,行不是文件中的实际行

读取文件后所需的行输出:
hello;世界

读取文件后的行的当前输出:
h


感谢您的帮助。

csv。reader
接受一个返回行的iterable。字符串在迭代时产生字符。解决方法很简单:

csvfile = csv.reader(data.splitlines(), delimiter=';')

csv.reader
接受返回行的iterable。字符串在迭代时产生字符。解决方法很简单:

csvfile = csv.reader(data.splitlines(), delimiter=';')