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")
for line in fp:
cols = line.rstrip().split(" ")
res = [int(cols[i][0]) for i in range(0,len(cols))].remove('.')
print(sum(res))
我正在尝试'/'
在每列中的正斜杠之前和之后添加数字,并输出由'/'
.
预期的输出将是
4/7 7/9
只需一条评论,我正在处理的真实文件就有 500 多个这些以空格分隔的列。
解决方案
使用str
方法
前任:
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
根据评论编辑
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}")
输出:
[[4, 7], [7, 9]]
4/7
7/9
推荐阅读
- python - 如何将彩色颗粒图像转换为黑白 (0,1) 以使晶界保持可识别
- c# - 使用 AutoMapper 将 id 列表转换为 Object
- javascript - 用户脚本跨域请求失败
- oauth-2.0 - 使用 Auth0 的身份验证过程将用户从我们的应用程序转移到另一个位置
- c# - 如何从 TranslateZoomRotateBehavior 禁用旋转手势
- amazon-web-services - AWS CodeDeploy 应用程序安装步骤不起作用 (CodeDeployPlugin::CommandPoller)
- laravel - 在 ADR 模式中将数据验证放在哪里?
- python - 发送带有正确信息的帖子数据时遇到问题
- python - 如何在此代码段中训练嵌入矩阵?
- android - 无法使用命令 ionic build android 创建构建 ionic3