python - ValueError: int() 以 10 为底的无效文字:':'
问题描述
我正在使用 jupyter python 3。我试图从 .tsp 文件导入数据,但它一直显示这个错误。我看到有些人有同样的问题,他们通过转换解决了它,但它不适用于我的代码。
NAME: berlin52
TYPE: TSP
COMMENT: 52 locations in Berlin (Groetschel)
DIMENSION : 52
EDGE_WEIGHT_TYPE : EUC_2D
NODE_COORD_SECTION
1 565.0 575.0
2 25.0 185.0
3 345.0 750.0
4 945.0 685.0
5 845.0 655.0
6 880.0 660.0
7 25.0 230.0
8 525.0 1000.0
9 580.0 1175.0
10 650.0 1130.0
# Open input file
infile = open(r'C:\Users\13136\OneDrive\Desktop\AI\berlin52.tsp')
# Read instance header
Name = infile.readline().strip().split()[1] # NAME
FileType = infile.readline().strip().split()[1] # TYPE
Comment = infile.readline().strip().split()[1] # COMMENT
Dimension = infile.readline().strip().split()[1] # DIMENSION
EdgeWeightType = infile.readline().strip().split()[1] # EDGE_WEIGHT_TYPE
infile.readline()
# Read node list
nodelist = []
N = int(Dimension)
for i in range(0, int(Dimension)):
x,y = infile.readline().strip().split()[1:]
nodelist.append([float(x), float(y)])
# Close input file
infile.close()
ValueError Traceback (most recent call last)
<ipython-input-22-5e3fe725955a> in <module>
12 # Read node list
13 nodelist = []
---> 14 N = int(Dimension)
15 for i in range(0, int(Dimension)):
16 x,y = infile.readline().strip().split()[1:]
ValueError: invalid literal for int() with base 10: ':'
解决方案
Name = infile.readline().strip().split(':')[1] # NAME
FileType = infile.readline().strip().split(':')[1] # TYPE
Comment = infile.readline().strip().split(':')[1] # COMMENT
Dimension = infile.readline().strip().split(':')[1] # DIMENSION
EdgeWeightType = infile.readline().strip().split(':')[1] # EDGE_WEIGHT_TYPE
DIMENSION
文件中的和的两行EDGE_WEIGHT_TYPE
没有:
紧随其后的名称,但中间有一些额外的空格,因此split()
将在每个空格处将这些行分成三部分,例如:
['DIMENSION', ':', '52']
您正在选择第二部分,它不能被解释为int
。您希望在将行拆分后始终保留行的第二部分:
,而不是 by ,这
split(':')
对您有用,例如:
['DIMENSION ', ' 52']
多余的空格可以.strip()
在这些行之后通过调用来删除,但int
也可以在没有的情况下接受它。
Dimension = infile.readline().split(':')[1].strip()
这仍然会删除包含 extra 的字段:
,但我认为这种特殊情况对您来说并不那么重要。
推荐阅读
- php - move_uploaded_file() 不做这项工作
- c# - C#读取并解析目录目录中的所有xml文件并写入signle csv文件
- r - 如何在 ggplot2 中包含 IF 语句以忽略 NA 案例
- sql - CASE WHEN EXISTS 不显示值我知道应该是假的
- java - 将对象添加到 json 文件中的对象的 JsonArray
- python - 如何使用 python unittest 在模拟对象中模拟列表?
- python - Odoo - 计算字段导入
- angular - “Angulartics2GoogleAnalytics”类型上不存在属性“startTracking”
- python - Python 3 urllib Discord 与 Slack Bot
- junit - Junit双引号比较