将带有几种不同类型数据的txt文件导入python。如何将数据文件中的每一行变成类的实例?

时间:2018-11-07 12:05:59

标签: python

我最近开始用python进行编码,现在正尝试获取一个文本文件,其中包含有关尺寸,价格和特定服装品牌的数据值。我已经设法使用以下命令将文本文件及其所有信息导入:

    def buyshop():
        print("You have selected to buy clothing. What would you like to buy?")
        print("\n Articles available: \n")
        handle = open("Clothing Shop On Sale.txt", "r")
        reading = handle.read()
        reading =(re.sub("'|(|)", "", reading))

我想获取文件中的数据,通常看起来像这样的原始数据:

~24 adidas    bad       blue      2695  
~12 adidas    excellent white     2200  

此数据的非正式模式:

  • 大小(最多3位数字)
  • 品牌(最多10个字符)
  • 条件(最多10个字符)
  • 颜色(最多10位数字)
  • 零售价(最多6位数字)。

我将使用每行中特定数据的特定空格将其索引出来。新数据集由~显示。如何获取这些数据并为每组数据创建一个类的实例?

2 个答案:

答案 0 :(得分:0)

最好,每个文件只有一种数据类型

对于第一部分,您可以使用csv模块来帮助您。

import csv

with open("shop_file", "r") as fd:
    a = csv.reader(fd, delimiter=' ')
    result = [line for line in a if line] #remove empty line

结果= [['~24', 'adidas', 'bad', 'blue', '2695'], ['~12', 'adidas', 'excellent', 'white', '2200']]

第二部分,您可以使用regex或json来更轻松地管理数据。

答案 1 :(得分:0)

如果您使用readline()函数读取文件,请使用以下代码获取变量的值

line='~24 adidas bad blue 2695'.lstrip('~') #removes the leading '~' 

size,brand,condition,color,price=line.split() #use line.split('\t') if you use tab to seperate the values  

确保将其放在try-except块中