[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 这个文件处理的Python代码如何写

下面是个示范文件
00:00:23.844 ---> 00:00:26.334

现在要求取出23.844和26.334这两个数据,然后把这2个数据分别加上1.5,
要求得到
00:00:25.344 ---> 00:00:27.834
然后存入新的文件。



23.844 ---> 00    // 前面提取的是这个字符串,如何去掉多余的部分?
26.334                //  后面那个字符串比较好提取

回复 2# wujunkai

num=list(map(float,re.findall(r'\d+\.\d+',text)))
//  这句话没怎么看懂,查了map的用法
//  map(函数名,列表)
//  你的代码float代表函数,后面那个re的正则替换是一个列表
//  最后用float转换成浮点型数据

TOP

回复 4# wujunkai

import re
text='''00:00:23.844 ---> 00:00:26.334
00:00:23.844 ---> 00:00:26.334
00:00:23.844 ---> 00:00:26.334
00:00:23.844 ---> 00:00:26.334
00:00:23.844 ---> 00:00:26.334'''
timeline = text.split('\n')
print timeline
for text in timeline:
    num=list(map(float,re.findall(r'\d+\.\d+',text)))
    print(num)
    for i in range(len(num)):
        num+=1.5
        print(num)

我要想得到下面的结果,应该怎么改?
上面的代码是有问题的。
[25.344, 27.834]
[25.344, 27.834]
[25.344, 27.834]
[25.344, 27.834]
[25.344, 27.834]

TOP

回复 6# wujunkai

num=list(map(float,re.findall(r'\d+\.\d+',text)))
这里是返回4个列表吧,如何让它变成1个列表?
如果这里变成1个列表,我就会写了。

TOP

回复 6# wujunkai


ucdos = []
for text ine timeline:
    num=list(map(float,re.findall(r'\d+\.\d+',text)))
    ucdos.append(num)

这样返回的是列表中嵌套着列表,如果只是想把元素合并起来该怎么写?
就是一个列表合并了所有元素,不要存在嵌套。

TOP

本帖最后由 netdzb 于 2020-4-19 15:01 编辑

回复 10# wujunkai

分割的地方写的不够精确,
谢谢提醒。

TOP

回复 10# wujunkai

还是存在一个问题,有时候会输出类似10.02999999的这种数据,不知道如何改正过来。

TOP

返回列表