【问题标题】:python Illegal instruction on AIX5.2AIX5.2上的python非法指令
【发布时间】:2011-01-29 10:21:41
【问题描述】:

我像这样运行我的 python 脚本函数: 从文本文件中读取,并将数据存储为 dict。但是当在循环中时,会发生非法指令。为什么会这样? 代码是这样的:

d={}
datafile=open('a.txt') # a big text file
for line in datafile:
    line=line.rstrip('\n')
    for token in line.split():
        print("Parsing line %d." % token[0])
        d[(int(token[0]))]=token[1:]

那么消息是这样的:

Parsing line 1.
Parsing line 2.
............
Parsing line 1064
Parsing line 1065
Illegal instruction

有什么问题?我的平台是 AIX 5.2 上的 python 2.6.2。 请帮助我,谢谢!

【问题讨论】:

  • 什么是打印“非法指令”?还印了什么?

标签: python aix


【解决方案1】:

这看起来很不对劲。 tokenline.split() 返回的字符串数组中的一个字符串。所以token[0] 是该字符串的第一个字符。因此,我不相信您会在输出中得到像 Parsing line 1065 这样的东西。正如 Mark 所写,您会看到 TypeError

请发帖

  1. 真正的代码
  2. 真实数据(前几行和第 1065/1066 行的摘录就足够了)
  3. 真正的错误消息。

否则没有办法帮你。

【讨论】:

  • +1 用 "%d" 格式化字符串会产生 TypeError;这段代码似乎不太可能产生所描述的结果。
  • 第二个for 循环对于他似乎正在尝试做的事情似乎完全没有必要。
猜你喜欢
  • 2021-08-19
  • 2013-04-29
  • 1970-01-01
  • 2019-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-20
  • 2021-02-01
相关资源
最近更新 更多