show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次了解了
- f.readlines()
- list(f)
- 读文件的时候
- readlines()按照行读出来
- 生成一个列表 list
- 列表 list 是一个容器
- 可以对于字幕srt文件进行操作吗?🤔
- 首先需要有一个srt文件
- 可以通过https://suno.g-mi.cn生成一首歌
- 然后再用视频软件 导出srt歌词
- 需要在终端
- 根据歌词起止时间
- 实时播放歌词
1
00:00:00,300 --> 00:00:03,166
摔倒 爬起来
2
00:00:03,333 --> 00:00:06,166
揉倒是我的用心
3
00:00:06,700 --> 00:00:11,200
明亮与技巧交错融合
4
00:00:13,400 --> 00:00:16,800
向前冲永不停息
5
00:00:16,866 --> 00:00:20,200
触碰地面的那一刻
6
00:00:20,200 --> 00:00:24,800
挣脱束缚展翅飞翔
- 首先要找到
- 每句歌词的截止时间
with open("柔道之歌.srt") as f:
l = f.readlines()
for num in range(len(l)):
#print(num,l[num],sep=":::::")
#print(num%4,"======")
if num%4 == 1:
s = l[num]
s = s.replace("\n","")
s = s.replace(",",".")
print(s[23:])
- 结果
- :w|!python3 % > end_time
- 输出重定向
with open("end_time","r") as f:
l = f.readlines()
for num in range(len(l)):
l[num] = l[num].replace("\n","")
for num in range(len(l)-1):
f1 = float(l[num+1])
f2 = float(l[num])
f = f1 - f2
print("time.sleep("+str(f)+")")
- 输出每句时长
print("import time")
print("import os")
with open("jodo.srt") as f:
l = f.readlines()
words = []
for num in range(len(l)):
if num%4 == 2:
s = l[num]
s = s.replace("\n","")
words.append(s)
start_time = l[1][6:12]
start_time = float(start_time.replace(",","."))
end_time = l[1][23:]
end_time = float(end_time.replace(",","."))
print("os.system(\"clear\")")
print("time.sleep("+str(start_time)+")")
print("print(\"" + words[0] + "\")")
print("time.sleep("+str(end_time)+")")
with open("end_time","r") as f:
l = f.readlines()
for num in range(len(l)):
l[num] = l[num].replace("\n","")
for num in range(len(l)-1):
print("os.system(\"clear\")")
print("print(\"" + words[num+1] + "\")")
f1 = float(l[num+1])
f2 = float(l[num])
f = f1 - f2
print("time.sleep("+str(f)+")")
- 输出结果
- 重定向 到song.py
import os
import time
os.system("clear")
time.sleep(0.3)
print("摔倒 爬起来")
os.system("clear")
print("柔道是我的用心")
time.sleep(3.0000000000000004)
os.system("clear")
print("明亮与技巧交错融合")
time.sleep(5.033999999999999)
os.system("clear")
print("向前冲永不停息")
time.sleep(5.600000000000001)
os.system("clear")
print("触碰地面的那一刻")
time.sleep(3.3999999999999986)
os.system("clear")
print("挣脱束缚展翅飞翔")
time.sleep(4.600000000000001)
- 保存并运行
- 节奏与音频同步
- 这次研究了
- 纯文本的字幕文件
- srt文件
- 并且让他根据时间线
- 在终端播放
- 可以从文本文件中
- 读取 数据结构吗?
- 比如
- 元组
- 列表
- 字典?
- 下次再说 👋