Python: Import a file and convert to a list

2019-07-07 06:37发布

I need help with importing a file and converting each line into a list.

An example of the file would look like:

p wfgh 1111 11111 111111
287 48 0
65626 -1818 0
4654 21512 02020 0

The first line beginning with p is a header and the rest are clauses. Each clause line must begin with a series of at least two integers and finish with a zero

thanks in advance

8条回答
We Are One
2楼-- · 2019-07-07 07:28

The following line will create a list where each item is a list. The inner list is one line thats split up into "words".

li = [i.strip().split() for i in open("input.txt").readlines()]

I put the code snippet you posted into a input.txt file in c:\temp and ran this line. Is the output similar to what you want?

C:\temp>python
Python 3.1.1 (r311:74483, Aug 17 2009, 17:02:12) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print([i.strip().split() for i in open("input.txt").readlines()])
[['p', 'wfgh', '1111', '11111', '111111'], ['287', '48', '0'], ['65626', '-1818', '0'], ['4654', '21512', '02020', '0']]
查看更多
放荡不羁爱自由
3楼-- · 2019-07-07 07:28

If you want all of the values in a flat list, the code would look as follows:

ls=[]
for line in open( "input.txt", "r" ).readlines():
    for value in line.split( ' ' ):
        ls.append( value )

If you just want the lines in a list then you can stop at readlines().

查看更多
登录 后发表回答