0

我刚开始使用python,任何建议将不胜感激。我正在阅读由另一个程序生成的表格,并从每行中提取 2 个数字,我将它们称为 a 和 b。(它们被保存为通量并在我的程序中观察)我需要从每一行中取出这两个数字并像这样格式化它们 -

(a,b),(a,b),(a,b) ect. 

每个连续的括号都来自连续的行,第一个 a,b 来自第 1 行,第二个 a,b 来自第 2 行,依此类推。我需要阅读整个表格,但是表格长度会有所不同。

这就是我到目前为止所拥有的。它可以读取表格并提取我需要的数字,但是,我不知道如何将数字放入正确的格式。我想说递归将是最有效的,但我不确定如何做到这一点。先感谢您。

#!/usr/bin/python

file = open("test_m.rdb")

 while 1:
    line = file.readline()
    i = line.split()
    flux = i[2]
    observed = i[4]
    if not line:
        break
4

3 回答 3

1
with open("test_m.rdb") as inf:
    results = [(i[2],i[4]) for i in (line.split() for line in inf)]

result_string = ",".join(str(res) for res in results)

或更通用的格式化程序:

result_string = ", ".join("('{2}', '{4}')".format(*res) for res in results)
于 2012-06-01T21:38:22.153 回答
0

非常简单的解决方案:

with open('data') as data:
    print ', '.join('(%s, %s)' % (x.split()[2], x.split()[4])
                    for x in data.readlines())

只需用于readlines遍历文件中的行。

于 2012-06-01T23:07:15.837 回答
0

假设你得到的两个值是 str1 和 str2
//在循环中遍历你的值
strTable = strTable + ['('+str1+')','('+str2+')']

希望oit能用,如果不行,评论,我会解决的。

于 2012-06-02T16:16:56.737 回答