Parsing a pipe delimited file in python

后端 未结 3 1458
醉酒成梦
醉酒成梦 2020-12-13 11:00

I\'m trying to parse a pipe delimited file and pass the values into a list, so that later I can print selective values from the list.

The file looks like:

         


        
相关标签:
3条回答
  • 2020-12-13 11:36

    Use the csv library.

    First, register your dialect:

    import csv
    csv.register_dialect('piper', delimiter='|', quoting=csv.QUOTE_NONE)
    

    Then, use your dialect on the file:

    with open(myfile, "rb") as csvfile:
        for row in csv.DictReader(csvfile, dialect='piper'):
            print row['name']
    
    0 讨论(0)
  • 2020-12-13 11:40

    If you're parsing a very simple file that won't contain any | characters in the actual field values, you can use split:

    fileHandle = open('file', 'r')
    
    for line in fileHandle:
        fields = line.split('|')
    
        print(fields[0]) # prints the first fields value
        print(fields[1]) # prints the second fields value
    
    fileHandle.close()
    

    EDIT: A more robust way to parse tabular data would be to use the csv library as mentioned below.

    0 讨论(0)
  • 2020-12-13 11:48
    import pandas as pd
    
    pd.read_csv(filename,sep="|")
    

    This will store the file in dataframe. For each column you can apply conditions to select the required values to print. It takes a very short time to execute. I tried with 111047 rows.

    0 讨论(0)
提交回复
热议问题