在python中从文件添加列值

在python中从文件添加列值,python,Python,我有以下文件: cat file.txt 1/1 2/3 2/3 1/3 ./2 1/1 ./. 3/2 1/1 ./. 我想删除点并添加每列的数字(由斜杠和空格分隔) 到目前为止,我已经: fp=open(“file.txt”、“r”) 对于fp中的行: cols=line.rstrip().split(“”) res=[int(cols[i][0])表示范围(0,len(cols))]中的i。删除('.')) 打印(总和(res)) 我试图在每列中添加正斜杠'/'前后的数字,并输出由'/

我有以下文件:

cat file.txt

1/1 2/3
2/3 1/3
./2 1/1
./. 3/2
1/1 ./.
我想删除点并添加每列的数字(由斜杠和空格分隔)

到目前为止,我已经:

fp=open(“file.txt”、“r”)
对于fp中的行:
cols=line.rstrip().split(“”)
res=[int(cols[i][0])表示范围(0,len(cols))]中的i。删除('.'))
打印(总和(res))
我试图在每列中添加正斜杠
'/'
前后的数字,并输出由
'/'
分隔的数字

预期的产出将是

4/7 7/9

只要一条注释,我正在处理的真实文件就有500多个空格分隔的列。

使用
str
方法

Ex:

fp = """1/1 2/3
2/3 1/3
./2 1/1
./. 3/2
1/1 ./."""

c1, c2 = 0, 0
c3, c4 = 0, 0
for line in fp.splitlines():
    m, n = line.strip().split()
    m1, m2 = m.replace(".", "").split("/")
    n1, n2 = n.replace(".", "").split("/")
    if m1: c1 += int(m1)   #OR float(m1)
    if m2: c2 += int(m2)
    if n1: c3 += int(n1)
    if n2: c4 += int(n2)

print(f"{c1}/{c2} {c3}/{c4}")
4/7 7/9
[[4, 7], [7, 9]]
4/7
7/9
输出:

fp = """1/1 2/3
2/3 1/3
./2 1/1
./. 3/2
1/1 ./."""

c1, c2 = 0, 0
c3, c4 = 0, 0
for line in fp.splitlines():
    m, n = line.strip().split()
    m1, m2 = m.replace(".", "").split("/")
    n1, n2 = n.replace(".", "").split("/")
    if m1: c1 += int(m1)   #OR float(m1)
    if m2: c2 += int(m2)
    if n1: c3 += int(n1)
    if n2: c4 += int(n2)

print(f"{c1}/{c2} {c3}/{c4}")
4/7 7/9
[[4, 7], [7, 9]]
4/7
7/9

按注释编辑

result = [[0, 0] for i in range(2)] 
for line in fp.splitlines():
    row = line.strip().split()
    for idx, data in enumerate(row):
        m1, m2 = data.replace(".", "").split("/")
        if m1: result[idx][0] += int(m1)   #OR float(m1)
        if m2: result[idx][1] += int(m2)

print(result)

for m, n in result:
    print(f"{m}/{n}")
输出:

fp = """1/1 2/3
2/3 1/3
./2 1/1
./. 3/2
1/1 ./."""

c1, c2 = 0, 0
c3, c4 = 0, 0
for line in fp.splitlines():
    m, n = line.strip().split()
    m1, m2 = m.replace(".", "").split("/")
    n1, n2 = n.replace(".", "").split("/")
    if m1: c1 += int(m1)   #OR float(m1)
    if m2: c2 += int(m2)
    if n1: c3 += int(n1)
    if n2: c4 += int(n2)

print(f"{c1}/{c2} {c3}/{c4}")
4/7 7/9
[[4, 7], [7, 9]]
4/7
7/9

谢谢有没有办法避免必须初始化c1、c2、c3、c4?实际文件有500个列支持的代码段