-3

我正在尝试使此代码将 prodname 变量转换为 int 值:

def prod_check(dirname):
    prodname_to_prodnum = {}
    fid2 = open('sample.txt','r')
    line = fid2.readline()
    line = line.strip()
    pline = line.split(',')
    prodname = (pline[0])[1:-1]
    prodnum = prodname
    prodname_to_prodnum[prodname] = prodnum
    line = fid2.readline()
    fid2.close()

但是当我使用“int(prodname)”时出现错误

4

2 回答 2

2

Python 中的列表是从 0 开始的,而不是从 1 开始的。您已经用 将线分成了字段split,因此您应该使用prodnum = int(pline[0])来获取第一个字段。

编辑:我希望人们会使用复制/粘贴将他们的代码放入问题中,错别字会有所不同。

我不知道您为什么要从数字字段中删除第一个和最后一个字符,也许是因为您需要从中删除空格?如果是这样,请尝试使用prodnum = int(pline[0].strip()).

于 2012-07-18T20:46:26.857 回答
2

试试这个而不是prodnum = prodname

try:
  prodnum = int(prodname)
except ValueError:
  prodnum = None
  print('prodname = ',prodname)
于 2012-07-18T20:31:01.557 回答