0

我有一个 TextCtrl 解析熟悉的 csv 格式,例如:

"ID","X","Y","Z"
1,199,486.5,13
2,200,485.3,12

我做了一些正则表达式,然后重新加载我的 CtrlList 以查看更改。您将 csv 格式转换为列表集,例如:

[['ID', 'X', 'Y', 'Z'], ['2', '200', '485.3', '12'], ['1', '199', '486.5', '13']]

现在我正在暗示:

datafile = open(message, 'r')  # message receiever from dispatcher 
datareader = csv.reader(datafile) 
data = [] 
for row in datareader: 
    data.append(row)   # Traceback - IOError: [Errno 22] invalid mode ('r') or filename

无论我使用哪种模式,我仍然会收到此错误。我需要明白为什么。

4

1 回答 1

0

如果您要传递一个对象、一个字符串或一个列表或其他任何东西,那么您将无法打开它。Python 的 open() 用于打开文件或类似文件的对象。您最好将消息对象包装在 StringIO 内,以将其转换为类似文件的对象。然后你也许可以使用 csv 模块来阅读它。或者您可以通过调度程序将文件对象传递给 csv 模块本身,而不是您当前传递的任何内容。

于 2013-10-14T18:39:11.107 回答