使用空格,值,括号和特殊字符读取文本文件

时间:2018-05-22 16:47:28

标签: python list csv

我有一个csv文档,我可以阅读以推断列格式:

'           46.0213(3)      ', '           101.2           ', '           105.8(4)        ', '           --        ', '           117.2  or 22.25  ', '           132.18900       ', '           --        ', '           172.7(6)'

其中:

  1. 当我考虑数字时,应该删除空格,即列表元素的int();
  2. 每个元素末尾括号中的数字表示错误(该值的最后一位数字)。这必须单独处理和处理;
  3. --表示该情况不知道任何值。在这种情况下,可能应归因NaN;
  4. 如果字符串元素为x or y
  5. ,则为两个值中的第一个

    如何处理所有这些特定要求?我不需要所有内容的代码,只需要一个“行为准则”和一些建议来找出这里最好的方法。

    这是我用来读取文本文件的代码:

    #!/usr/local/bin python
    
    import os, re, glob, csv
    
    with open('data.txt', 'r') as fp:
        reader = csv.reader(fp, delimiter=',', quotechar='(')
        column_I_want = list(zip(*reader))[4]
    
    print column_I_want
    

    编辑:这是一种理想的输出:

    print values, error
    # [ 46.0213, 101.2, 105.8, NaN, 117.2, 132.18900, NaN, 172.7], [0.3, Nan, 0.4, NaN, NaN, NaN, 0.6]
    

1 个答案:

答案 0 :(得分:1)

1)这将删除前导和尾随空格

string.strip()

2,3,4)

string.strip()
if "--" in string:
    # assign NaN
    pass
elif "or" in string:
    first = float(string.split()[0])
elif "(" in string:
    string.replace('(', ')')
    tok = string.split(')')
    first, second = float(tok[0]), float(tok[1])
else:
    first = float(string)