我正在学习python进行数据挖掘,我有一个文本文件,其中包含世界城市及其坐标的列表。用我的代码,我试图找到一个城市列表的坐标。一切都很顺利,直到有一个城市名称与非标准字符。我希望程序将跳过该名称并移到下一个名称,但它将终止。如何使程序跳过找不到的名称并继续下一个?你知道吗
lst = ['Paris', 'London', 'Helsinki', 'Amsterdam', 'Sant Julià de Lòria',
'New York', 'Dublin']
source = 'world.txt'
fh = open(source)
n = 0
for line in fh:
line.rstrip()
if lst[n] not in line:
continue
else:
co = line.split(',')
print lst[n], 'Lat: ', co[5], 'Long: ', co[6]
if n < (len(lst)-1):
n = n + 1
else:
break
这次运行的结果是:
>>>
Paris Lat: 33.180704 Long: 67.470836
London Lat: -11.758217 Long: 17.084013
Helsinki Lat: 60.175556 Long: 24.934167
Amsterdam Lat: 6.25 Long: -57.5166667
>>>
你的代码有很多问题。以下修复了大部分(如果不是全部的话)问题,并且永远不会在找不到城市时终止。你知道吗
可能是编码问题。你必须知道哪个编码是文件“世界.txt". 你知道吗
如果您不知道,请尝试最常用的编码。你知道吗
更换管路:
用线条:
如果仍然不起作用,用
'cp1252'
替换'utf-8'
,然后用'iso-8859-1'
替换。 如果这些常见的编码都不起作用,你必须自己找到编码。尝试打开“世界.txt“在Notepad++,这个文本编辑器能够进行编码推断。(不确定Notepad++是否能够打开300万行文件)。你知道吗知道哪种编码是您自己的python源文件也是一种很好的做法,并通过在源文件的开头添加一行
# -*- coding: utf-8 -*-
来显式地告诉它。你知道吗当然,您必须指定源文件的确切编码。同样,您可以通过在Notepad++中打开它来确定它。你知道吗
相关问题 更多 >
编程相关推荐