【问题标题】:Conversion to list of list from a file in python从python中的文件转换为列表列表
【发布时间】:2022-01-11 23:43:25
【问题描述】:

我正在尝试通过运行 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

现在我想返回一个列表列表。我的意思是它看起来像:

[['*', '*', '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']

我该怎么做并从中返回列表列表?请帮忙。

【问题讨论】:

  • 查看 split 函数以将字符串拆分为换行符,然后拆分为每个列表的逗号字符。

标签: python python-3.x list return executable


【解决方案1】:

使用列表理解和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']]

【讨论】:

  • 我正在更新我的代码,例如:f = open('outfile', "r") content = f. read() [l.split(',') for l in content.rstrip('\n').split('\n')] print(content) 它可以正常工作吗?
  • 我只是在确认这一点。是的,它工作得很好。非常感谢。 :)
猜你喜欢
  • 2020-12-14
  • 2016-07-11
  • 2016-01-15
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-11
相关资源
最近更新 更多