我正在运行一个别人给我的脚本,但我不断收到以下错误:
line 144, in <module>
ID=int(afields[0])
ValueError: invalid literal for int() with base 10: '1\t20.1103\t17.00\n'
错误来自此代码段:
while altlat and tminM and tmaxM:
afields=altlat.split(' ')
tmifields=tminM.split(' ')
tmxfields=tmaxM.split(' ')
ID=int(afields[0])
y= float(afields[1])
z=float(afields[2])
从.txt文件读取altlat的位置:
ifh0=open(infilepath + '\\' + 'lat_alt_hainan.txt', "r")
zy_header_line=ifh0.readline()
altlat=ifh0.readline()
纬度高度_海南.txt看起来像这样:
POINTID lat alt
1 20.1103 17.00
2 20.0269 1.00
3 20.0269 16.00
4 20.0269 17.00
5 20.0269 5.00
6 20.0269 5.00
等等。。。你知道吗
所以第一列用INT调用,另外两列用FLOAT调用。这就是出现错误的地方。脚本的创建者告诉我将excel中的.txt文件格式化为数字格式,然后错误消失,但我已经完成了,错误仍然存在。然后我想这可能是因为.txt文件使用“.”作为十进制分隔符,而我的计算机使用“,”,但我改变了这一点,错误仍然出现。你知道用什么方法来准备一个.txt文件供Python读取吗?你知道吗
谢谢!你知道吗
要解决您的问题,您需要按照this answer given中的说明,使用^{} 拆分读取/导入的行。你知道吗
不过,我想展示另一种方法,因为您提到您的数据来自Excel。你知道吗
我建议使用Python的标准^{} 模块从文件中读取数据:
鉴于
foo.csv
作为以下结构(分号作为列分隔符,点作为小数分隔符):似乎要按所有空格拆分,应该使用不带任何参数的-
string.split()
。你知道吗示例-
相关问题 更多 >
编程相关推荐