将带有空格的原始数据转换为相关的数据类型

时间:2018-06-17 14:45:55

标签: python python-3.x

我已将网页中的部分数据复制到文本文件中。如何将此数据转换为相关数据格式

这样我就可以将学生数据列表设为Mono<Bar> bar Mono<Foo> foo可以访问 student=[s1,s2,s3]s1.RollNo作为使用python的类。这个数据中有很多空格。我已经完成了文件处理操作,并将每一行保存为字符串列表。

数据如下:

s2.Name

2 个答案:

答案 0 :(得分:3)

我们可以使用库RollNo Marks Name 1 55 Ram 2 100 Shayam 3 91 Tom 4 72 Sweety 并使用正则表达式来删除访问空间。首先,在此代码中,创建名为student的named.uplele类。

  

命名元组对于为数据分配字段名称特别有用。

namedtuple

答案 1 :(得分:1)

@Rajat ,您可以尝试以下代码从文本文件中读取数据(此处为students.txt)并将数据存储在类对象中。

  
      
  1. 设计课程,学生

  2.   
  3. 设计一个以文件路径为参数并在处理文本文件后返回学生对象列表的函数。

  4.   

»students.txt

RollNo   Marks       Name
1         55         Ram
2         100        Shayam 
3         91         Tom
4         72         Sweety

»read_file_and_store.py

class Student:
    """
    Constructor which constructs a Student object
    """
    def __init__(self, roll_no, marks, name):
        self.roll_no = roll_no;
        self.marks = marks;
        self.name = name;


def read_data_from_file_store(file_path):
    """
    This function reads data from file and store in the objects of type Student
    """ 
    students = [] # A list of objects of type Student
    with open(file_path) as f:
        lines = f.readlines();
        print (lines, end="\n")

        for line in lines[1:]:
            arr = line.strip().split();
            roll_no = int(arr[0]); 
            marks = int(arr[1]); # Converting string to integer
            name = " ".join(arr[2:]); # It will store multiword names (e.g Rishikesh Agrawani)

            # Creating Student object then storing it in a list
            student = Student(roll_no, marks, name);
            students.append(student);

    return students;


# Starting point
if __name__ == "__main__":
    file_path = "E:\\Users\\Rishikesh\\Python3\\Practice\\ReadAndStore\\students.txt"
    students = read_data_from_file_store(file_path);

    # As we know, in this case we have 4 students so the following statements are correct
    # Otherwise you can use loop through list and print the data stored in objects
    s1 = students[0];
    s2 = students[1];
    s3 = students[2];

    # This is what you want
    print("Student 1:\n");
    print("Roll no: ", s1.roll_no); 
    print("Marks  : ", s1.marks);
    print("Name   : ", s1.name, end='\n');

    print("Student 2:\n");
    print("Roll no: ", s2.roll_no); 
    print("Marks  : ", s2.marks);
    print("Name   : ", s2.name, end='\n');

    print("Student 2:\n");
    print("Roll no: ", s3.roll_no); 
    print("Marks  : ", s3.marks);
    print("Name   : ", s3.name, end='\n');

»输出

E:\Users\Rishikesh\Python3\Practice\ReadAndStore>python read_file_and_store.py
['RollNo   Marks       Name\n', '1         55         Ram\n', '2         100        Shayam \n', '3         91         Tom\n', '4         72         Sweety']

Student 1:

Roll no:  1
Marks  :  55
Name   :  Ram
Student 2:

Roll no:  2
Marks  :  100
Name   :  Shayam
Student 2:

Roll no:  3
Marks  :  91
Name   :  Tom