Python - CSV将文本文件中的数据提取到CSV文件中

时间:2013-10-25 21:46:12

标签: python csv

我有一个未完全格式化的文本文件,但它已指定列。

Code            Description          Unit          Retail
1000MADB90      Taupe 2X2            12X12         5.90
1002MOPAS       Grey Stilato         12X12         12.09

然后是一些垃圾,然后再次

      Code            Description          Unit        Retail
    1050QADD         Black 2X2            12X12         2.12
    1002MOPAS       Red velvet            12X12         1.11

我需要能够在csv文件中格式化它,并且之前和之后都没有垃圾。所以,我想在它们之后保留列名和信息,直到它遇到垃圾并跳转到以Code开头的另一列。我已经尝试了一些(12个准确的)在stackeroverflow上找到的例子,但似乎无法得到它,因为它是为Excel(csv)之类的格式化。此外,文本文件中的列的大小和对齐方式也不尽相同(如果重要的话,请注意dunno)

我不是程序员,但我正在寻找一种简单的方法来转换目录以在POS系统中输入它。我很感激帮助

1 个答案:

答案 0 :(得分:1)

一种简单的方法(如果您知道识别垃圾的简单方法):

with open('originalfile.csv','r') as f:
  with open('newfile.csv','w') as new_file:
    for row in f:
      if not is_junk(row):
        new_file.write(row)


def is_junk(row):
  return not row.strip() or ( not ( ("Retail" in row ) or is_float(row.split()[-1]) ) )

def is_float(str):
  try:
    float(str)
    return True
  except ValueError:
    return False