Python .从文件中拆分并将其放入数组中

Python .从文件中拆分并将其放入数组中,python,Python,我正在读取一个包含一些信息的文件,每个部分都用@分隔,但是在每一行上我希望它是一个不同的数组,所以我这样做了,我不知道为什么它不起作用 main_file = open("main_file.txt","r") main_file_info=main_file.readlines() test=[] n=0 for line in main_file_info: test[n]=line.split("@") test=test[n][1:len(test)-1] # to g

我正在读取一个包含一些信息的文件,每个部分都用@分隔,但是在每一行上我希望它是一个不同的数组,所以我这样做了,我不知道为什么它不起作用

main_file = open("main_file.txt","r")
main_file_info=main_file.readlines()

test=[]
n=0
for line in main_file_info:
       test[n]=line.split("@")

test=test[n][1:len(test)-1] # to get rid of empty strings at the start and the end 
print(test)# see what comes out 

main_file.close()
或者只需附加到
测试

test.append( line.split("@") )
或者只需附加到
测试

test.append( line.split("@") )

在列表中插入
line.split(“@”)
输出的方式是错误的。列表未初始化,因此,不能简单地将任何内容分配给列表的任何元素。因此,您需要做的是:

test.append(line.split("@"))
或者,您可以按如下方式初始化列表:

test = [[]]*(len(main_file_info))

在列表中插入
line.split(“@”)
输出的方式是错误的。列表未初始化,因此,不能简单地将任何内容分配给列表的任何元素。因此,您需要做的是:

test.append(line.split("@"))
或者,您可以按如下方式初始化列表:

test = [[]]*(len(main_file_info))

你能展示你得到了什么样的输出吗?请发布一个输入文件的示例。我没有收到任何消息。我收到一个错误:回溯(最近一次调用):文件“C:\Users\Dominic\Desktop\Homework creator\reading files.py”,第14行,在测试[n]=line.split(“@”)索引器错误:列表分配索引超出范围我在for station中添加了一个n=n+1,它仍然执行相同的操作,可以显示您得到的输出吗?请发布一个输入文件的示例。我没有收到任何消息。我收到一个错误:回溯(最近一次调用):文件“C:\Users\Dominic\Desktop\Homework creator\reading files.py”,第14行,在测试[n]=line.split(“@”)索引器:列表分配索引超出范围我在for station中添加了一个n=n+1,它仍然执行相同的操作,但我仍然在开始和结束时获得空字符串。它给了我以下输出:[[”,“1”,“1”,“a”,“3”,“none”,“3”,“3”,“n”,“2”,“2”,“B”,“3”,“1”,“2”,“2”,“n']],在这种情况下,执行以下操作:
new\u test=[filter(bool,i)对于测试中的i]
,这将删除列表中任何位置的空字符串@DominikPraskiit仍然输出相同的空字符串,文件如下所示:@1@1@A@3@none@3@#新品,然后:@2@2@B@3@1@2@这是可行的,但我仍然在开始和结束时得到空字符串。它给了我以下输出:[['''1','1','A','3','none','3','3','n'],[''2','2','B','3','1','2','n']在这种情况下,请执行以下操作:
new\u test=[filter(bool,i)for i In test]
,这将删除列表中任何位置的空字符串@DominikPraskiit仍然输出相同的空字符串,文件如下所示:@1@1@A@3@none@3@#新品,然后:@2@2@B@3@1@2@