Python 在文本文件的每行末尾追加浮点数据

Python 在文本文件的每行末尾追加浮点数据,python,Python,我有一个.txt文件,我试图在每一行的末尾添加一个浮点数,其值比最后一行的值递增。 这是我在.txt文件中的内容: >520.980000 172.900000 357.440000 >320.980000 192.900000 357.441000 >325.980000 172.900000 87.440000 我试图得到这个结果: >520.980000 172.900000 357.440000 1.1 >320.980000 192.900000 357

我有一个.txt文件,我试图在每一行的末尾添加一个浮点数,其值比最后一行的值递增。 这是我在.txt文件中的内容:

>520.980000 172.900000 357.440000
>320.980000 192.900000 357.441000
>325.980000 172.900000 87.440000
我试图得到这个结果:

>520.980000 172.900000 357.440000 1.1
>320.980000 192.900000 357.441000 1.2
>325.980000 172.900000 87.440000 1.3
但似乎不知道如何迭代和增加数据

编辑:

根据@Daweo的建议,由于评论部分的格式问题,我将我的评论放在编辑部分。 因此,我有一个帧序列,如下所示,我想给每组序列一个数字,并将其递增,例如:索引为0的组(第一列),我将在每行末尾添加1,索引为1的组,我将在每行末尾添加2,依此类推:

0 0 0 0 -1.793451 296.744956 161.752147 455.226042 292.372804 
0 1 0 0 -1.936993 737.619499 161.531951 931.112229 374.000000
0 2 0 0 -2.523309 1106.137292 166.576807 1204.470628 323.876144 
1 -1 -1 -1 -10.000000 228.120000 183.030000 258.830000 217.340000
1 -1 -1 -1 -10.000000 59.210000 191.300000 137.370000 227.430000 
1 0 0 0 -1.796862 294.898777 156.024256 452.199718 284.621269 2.000000 
1 1 0 0 -1.935205 745.017137 156.393157 938.839722 374.000000 1.739063 
1 2 0 0 -2.530402 1138.342096 160.872449 1223.338201 324.146788
2 -1 -1 -1 -10.000000 236.270000 175.500000 267.210000 211.030000
2 -1 -1 -1 -10.000000 68.906000 183.810000 145.870000 224.020000 
2 0 0 0 -1.800343 293.093560 150.470149 449.259225 277.104290 2.000000 
没有其他模块(不是说你应该避免它们!):

数字\u out.txt:

>520.980000 172.900000 357.440000 1.1
>320.980000 192.900000 357.441000 1.2
>325.980000 172.900000 87.440000 1.3


我会这样做: 假设您有文件
input.txt

520.980000 172.900000 357.440000
320.980000 192.900000 357.441000
325.980000 172.900000 87.440000
然后:

之后,
output.txt
是:

520.980000 172.900000 357.440000 1.1
320.980000 192.900000 357.441000 1.2
325.980000 172.900000 87.440000 1.3

请注意,我使用了
Decimal
来防止出现浮点数问题(比如.999999…)。我使用正则表达式(
re
)查找换行符(
\n
),并通过将函数作为第二个
re.sub
参数传递,将其替换为后续的数字。

您能告诉我们您已经尝试了什么吗?你知道如何读取第一个文件,如何编写第二个文件(除了增量部分),你能给出几段代码吗?浮点值的起点是什么?您希望在每次迭代中增加多少?@corentilimier我对python有点陌生,所以我很不好意思发布我的代码,但这是我迄今为止尝试过的,但我一直在解析数据并将值filepath=“0004.txt”与open(filepath)相加为fp:lines=fp.read().splitlines()与open(filepath,“w”)作为fp:for line-in-line:print(line+“#”,file=fp)@Mezbaメ 我的起点是1,我想增加0。1@OneManArmy别不好意思,我们都是从同一水平开始的。谢谢你的努力。但正如我在你的回复中所展示的那样,文件的全部内容都被删除了,而我有一个空文件,你知道是什么原因造成的吗?谢谢,这很奇怪。费解的哪个文件?每次运行上述代码时,numbers_out.txt都将被覆盖。@OneManArmy“w”标志将在写入文件之前截断文件。我也不建议将
嵌套在
环境中,这既不干净也不必要。似乎您使用了输入文件作为输出文件!您可以这样做,但是您必须在写入之前读取整个输入文件,这不应该是一个问题。我希望你没有永远丢失这些数据。谢谢你,这一切都成功了!让我把我的两分钱放在这里,说我把输出名称改成了与输入相同的名称,这样我在应用这个功能时就不必重命名300多个文件了。既然你的方法有效,我想问你,你能否告诉我如何在多个文件上应用它,现在的情况是,一个文件夹有20个文件,我想把它应用到所有的文件夹中them@OneManArmy:查看
os.listdir
函数,它接受一个参数-目录路径和
返回其内容的
s
list
。感谢您的回复,事实上,我想知道你是否可以帮助解决一个复杂的问题,即添加txt文件。在下一篇评论中,我有一个框架序列,如下所示,我想给每个序列组一个数字,并为以下内容递增,例如:索引为0的组(第一列)将在每行末尾加1,下一个索引是1,我将在每行末尾添加2,以此类推。
0-1-1-10.000000219.310000
0-1-1-1-10.00000047.560000
0-0-1.793451 296.744956
0-1.936993 737.619499
0-2.523309 1106.137292
1-1-1-1-10.00000059.210000
100-1.796862 294.898777
110-1.935205745.017137
120-2.5304021138.342096
2-1-1-1-1-10.000000236.270000
2-1-1-1-1-1-1-10.906000
2200-2.5387441151.358043
from decimal import Decimal
import re
counter = Decimal('1.0')

def get_number(_):
    global counter
    counter += Decimal('0.1')
    return " "+str(counter)+'\n'

with open("input.txt","r") as f:
    data = f.read()

out = re.sub('\n',get_number,data)

with open("output.txt","w") as f:
    f.write(out)
520.980000 172.900000 357.440000 1.1
320.980000 192.900000 357.441000 1.2
325.980000 172.900000 87.440000 1.3