从 python 中的文件转换为列表列表
Conversion to list of list from a file in python
我正在尝试通过 运行 C 可执行文件从 python 代码执行 C 文件。下面是我的代码:
import subprocess
import sys
dataset = sys.argv[1]
def func():
subprocess.run(['/home/dev/exec_file', dataset, 'outfile'])
f_result = []
f = open('outfile', "r")
content = f. read()
f_result.append(content)
print(f_result)
#print(content.rstrip('\n'))
return f_result
这里如果我简单地写 print(content.rstrip('\n'))
那么它给出的输出如下:
*,*,1,*,0
*,*,2,2,1
*,*,*,3,1
*,*,*,4,2
*,*,3,*,2
现在我要return列表列表。我的意思是它看起来像:
[['*', '*', '1', '*', '0'], ['*', '*', '2', '2', '1'], ['*', '*', '*', '3', '1'], ['*', '*', '*', '4', '2'], ['*', '*', '3', '*', '2']]
在我上面的方法中,print(f_result)
给出的输出如下:['*,*,1,*,0\n*,*,2,2,1\n*,*,*,3,1\n*,*,*,4,2\n*,*,3,*,2\n']
我该怎么做,return 从这个列表列表?请帮忙。
使用列表理解和str.split
:
content = '*,*,1,*,0\n*,*,2,2,1\n*,*,*,3,1\n*,*,*,4,2\n*,*,3,*,2\n'
[l.split(',') for l in content.rstrip('\n').split('\n')]
输出:
[['*', '*', '1', '*', '0'],
['*', '*', '2', '2', '1'],
['*', '*', '*', '3', '1'],
['*', '*', '*', '4', '2'],
['*', '*', '3', '*', '2']]
我正在尝试通过 运行 C 可执行文件从 python 代码执行 C 文件。下面是我的代码:
import subprocess
import sys
dataset = sys.argv[1]
def func():
subprocess.run(['/home/dev/exec_file', dataset, 'outfile'])
f_result = []
f = open('outfile', "r")
content = f. read()
f_result.append(content)
print(f_result)
#print(content.rstrip('\n'))
return f_result
这里如果我简单地写 print(content.rstrip('\n'))
那么它给出的输出如下:
*,*,1,*,0
*,*,2,2,1
*,*,*,3,1
*,*,*,4,2
*,*,3,*,2
现在我要return列表列表。我的意思是它看起来像:
[['*', '*', '1', '*', '0'], ['*', '*', '2', '2', '1'], ['*', '*', '*', '3', '1'], ['*', '*', '*', '4', '2'], ['*', '*', '3', '*', '2']]
在我上面的方法中,print(f_result)
给出的输出如下:['*,*,1,*,0\n*,*,2,2,1\n*,*,*,3,1\n*,*,*,4,2\n*,*,3,*,2\n']
我该怎么做,return 从这个列表列表?请帮忙。
使用列表理解和str.split
:
content = '*,*,1,*,0\n*,*,2,2,1\n*,*,*,3,1\n*,*,*,4,2\n*,*,3,*,2\n'
[l.split(',') for l in content.rstrip('\n').split('\n')]
输出:
[['*', '*', '1', '*', '0'],
['*', '*', '2', '2', '1'],
['*', '*', '*', '3', '1'],
['*', '*', '*', '4', '2'],
['*', '*', '3', '*', '2']]