Home > Net >  Reordering text file: Python
Reordering text file: Python

Time:11-29

I have many text files. All of them have the following kind of structure.

textfile.txt

id|name|dataType
5|aa|String
4|bb|DateTime
|dd|DateTime
1|cc|DateTime
3|dd|DateTime

I would like to read all these text files one by one and reorder them based on their id and rows with no id should be excluded. After that I would like to get the following:

id|name|dataType
1|cc|DateTime
3|dd|DateTime
4|bb|DateTime
5|aa|String

Is there any pythonic way to do this?

CodePudding user response:

You can use:

(pd.read_csv('textfile.txt', sep='|')
   .loc[lambda d: d['id'].notna()]
   .convert_dtypes()
   .sort_values(by='id')
   .to_csv('out.txt', sep='|', index=False)
)

out.txt:

id|name|dataType
1|cc|DateTime
3|dd|DateTime
4|bb|DateTime
5|aa|String
  • Related