您好,我正在尝试提取第 180 行第 [3] 和 [4] 列的信息。我面临的问题是
- 元素之间用 3 个空格分隔
- @@Data 从第 180 行开始
- 我使用的代码无法提取特定列
它给我的错误:line = reader[180][3] IndexError:列表索引超出范围
@@Data: Source 0 in text format: 1 2 2 1 1 9 1 1 -2 2 1 -3 3 1 3 2 2 1 1 9 1 1 -2 2 1 -3 3 1 4 2 2 1 1 9 1 1 -1 1 1 -2 2 1
我正在使用的代码
reader = list(csv.reader(f, delimiter=' '))
SatIP, CoerIP = getSatHcoer(reader)
print SatIP, CoerIP
def getSatHcoer(reader):
line = reader[180][3]
Sat = line.split(' ')
Sat = Sat[len(Sat)-1]
line = reader[180][4]
Coer = line.split(' ')
Coer = Coer[len(Coer)-1]
return Sat, Coer
pass
最佳答案
如果我正确理解你的问题,那么你在分割字段时遇到了麻烦,因为它们由 3 个空格分隔;您实际上可以根据正则表达式进行拆分,请尝试使用:
Coer = line.split("\s+")
\s
是表示空白的正则表达式类(制表符、空格、换行符和退格符?)
+
表示应用前一个模式一次或多次,因此该表达式将匹配一个或多个空格字符。使用此方法,字段之间有多少空格分隔并不重要。
编辑 如下所述,仅当您导入 re 并使用 re.split 时,这才有效。
import re
Coer = re.split("\s+",line)
关于python - 读取以3个空格分隔的文本文件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19261971/