0

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

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)之类的格式设置的。文本文件中的列的大小和对齐方式也不同(不知道是否重要)

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

4

1 回答 1

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
于 2013-10-25T22:02:05.947 回答