python - 读取以3个空格分隔的文本文件数据

标签 python csv split notepad

您好,我正在尝试提取第 180 行第 [3] 和 [4] 列的信息。我面临的问题是

  1. 元素之间用 3 个空格分隔
  2. @@Data 从第 180 行开始
  3. 我使用的代码无法提取特定列
  4. 它给我的错误: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/

相关文章:

c# - 使用 c# 解析大型 csv 文件中前两列的快速/低内存方法

c# - 分割数组的一个元素

c# - 从 Python 运行 .NET COM 程序集。程序集 dll 的 Python 路径?

python - 在 Django 查询中使用 .extra(select={...}) 引入的值上使用 .aggregate()?

csv - 从Powershell foreach循环将输出安排为CSV

mysql - MySQL大流量如何处理?

c++ - 如何从文件中读取值。分词器

python - 使用 Python 与 Julia 进行线性回归的分析解决方案

python - 类似于 Google App Engine 的 statsd + graphite?

python - 使用 GAE 批量 uploader 脚本,如何处理 CSV 中的空值?