Board logo

标题: [文本处理] 这种文本如何用批处理转换 [打印本页]

作者: netdzb    时间: 2021-1-3 10:59     标题: 这种文本如何用批处理转换

00:00:00.160
00:00:03.400
今天我分享一道我做错的死活题

00:00:04.280
00:00:05.800
我看到题目的时候呢

00:00:06.120
00:00:08.600
我的第一感就是黑棋这样挖

===> 转换成这样的结果

1
00:00:00.160 --> 0:00:03.400
今天我分享一道我做错的死活题

2
00:00:04.280 --> 0:00:05.800
我看到题目的时候呢

3
00:00:06.120 --> 00:00:08.600
我的第一感就是黑棋这样挖
作者: netdzb    时间: 2021-1-3 11:19

回复 1# netdzb

前面的正则可以这样写吗?

^[0-9][0-9]\:[0-9][0-9]\:[0-9][0-9]\.[0-9][0-9][0-9]
感觉写的挺啰嗦的啊
作者: ivor    时间: 2021-1-3 12:12

  1. (^[\d:\.]+)\s+(^[\d:\.]+)
复制代码
替换为
  1. $1 $2
复制代码

作者: netdzb    时间: 2021-1-3 12:19

回复 3# ivor

\s+表示什么意思啊?
作者: wxyz0001    时间: 2021-5-5 13:43

本帖最后由 wxyz0001 于 2021-5-5 13:47 编辑
  1. $srt=Get-Content .\字幕a.txt
  2. $srt|ForEach-Object{
  3. #转换序号
  4. $j=$_.ReadCount/4
  5. #每次处理4行
  6. if(($_.ReadCount+4)%4 -eq 0){
  7. #格式化4行
  8. "{0}`n{1} --> {2}`n{3}`n" -f $j ,$srt[$_.ReadCount -4],$srt[$_.ReadCount -3],$srt[$_.ReadCount -2]
  9. }
  10. }|Set-Content .\字幕b.txt
复制代码

作者: Gin_Q    时间: 2021-5-5 15:11

他干啥了。被禁止发言了?
作者: wxyz0001    时间: 2021-5-5 15:32

回复 6# Gin_Q
他只是没来吧,可能他问题已经解决了
作者: 1152    时间: 2021-5-5 21:13

回复 6# Gin_Q


    被误会了呗。还在360问答发 被版主误会了怎么办?
作者: WHY    时间: 2021-5-5 21:52

翻翻这位仁兄的历史贴就知道了,
标题大多数都是违规的;
几乎没有一个帖子是"已解决"的;
几乎没有一句对给予他帮助的人表示谢意的;
对回复者最起码的尊重都没有;
大有一副"姜太公钓鱼愿者上钩"的味道。
作者: wxyz0001    时间: 2021-5-30 16:58

回复 5# wxyz0001
Python代码
  1. with open('E:\\news\\字幕.txt', 'r', encoding='gbk') as f:
  2.     file = f.readlines()
  3.     str_ = ""
  4.     for i in range(0, len(file), 4):
  5.         str_ += '{0}\n{1} --> {2}{3}\n'.format(str(int((i + 4) / 4)), file[i].strip('\n'), file[i+1], file[i+2])
  6.     with open('E:\\news\\字幕b.txt', 'w', encoding='gbk') as ff:
  7.         ff.write(str_)
复制代码

作者: netdzb    时间: 2021-5-30 18:28

回复 9# WHY

我知道我有的地方做的不够好,我会慢慢改掉的。
请论坛能够接纳我,也能在这个平台和大家交流吧。
作者: netdzb    时间: 2021-5-30 18:30

回复 10# wxyz0001

我很久没有写python代码,我去研究一下代码。
谢谢你。
作者: netdzb    时间: 2021-5-30 18:32

回复 6# Gin_Q

我回归论坛了,很高兴和大家交流。
作者: qixiaobin0715    时间: 2021-5-31 06:26

回复 12# netdzb
那么,平时你都是写什么呢
作者: qixiaobin0715    时间: 2021-5-31 11:16

  1. @echo off
  2. set /a n=0,x=1
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%a in ('findstr /n .* test.txt') do (
  5.     set "str=%%a"
  6.     set "str=!str:*:=!"
  7.     set /a n+=1
  8.     set /a "m=(n-1)%%4+1"
  9.     if !m!==1 (
  10.         echo,!x!
  11.         set /a x+=1
  12.         set "var=!str!"
  13.     ) else if !m!==2 (
  14.         echo,!var!--^>!str!
  15.     ) else (
  16.         echo,!str!
  17.     )
  18. )
  19. pause
复制代码

作者: netdzb    时间: 2021-5-31 12:39

回复 14# qixiaobin0715

我最近在学javascript,正在一点点的啃。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2