我喜欢 C++。这不仅是我习惯的,也是我自然倾向于思考的方式。我喜欢把问题分解成小块,一次处理一个,然后构建一个整体。我发现用 C++ 编写代码很有趣。但是,至少可以说它很耗时......
我很喜欢 Python,但我想成为“Pythonic”,而不仅仅是用 Python 编写 C++ 代码...
如果视频大于 3.5gigs,GoPro 会将其分成多个片段。例如:
GX010921.MP4
GX020921.MP4
前两个字符总是“GX”然后是段 ID 的两位数字。
然后是视频ID的4位数字。
然后是“.MP4”
我永远不会为段 ID 使用两位数,因为在此之前相机会过热或耗尽电池。所以我可以把它当作:
"GX0" + segment_id + video_id + ".MP4"
GX01 + video_id + "_" + segment_id + ".MP4"
GX010920.MP4
GX010921.MP4
GX010922.MP4
GX010923.MP4
GX010924.MP4
GX010925.MP4
GX020921.MP4
GX020923.MP4
GX030923.MP4
GX040923.MP4
变成:
GX010920.MP4
GX010921_1.MP4
GX010921_2.MP4
GX010922.MP4
GX010923_1.MP4
GX010923_2.MP4
GX010923_3.MP4
GX010923_4.MP4
GX010924.MP4
GX010925.MP4
我用 C++ 编写了一个程序来执行此操作(甚至不到 100 万行代码!)并且运行良好。所以我认为这对我来说是一个很好的小练习,可以让我开始尝试学习 Python 的思维方式。这是我第一次尝试用 Python 编写的东西,我想到了这个:
import os
for n in range(2,10):
for file in [f for f in os.listdir() if "GX0"+str(n) in f]:
if (n == 2):
os.rename("GX01" + file[4:8] + ".MP4", "GX01" + file[4:8] + "_1.MP4")
os.rename(file, "GX01" + file[4:8] + "_" + str(n) + ".MP4")
它有效,它的大小是 C++ 程序的一小部分,我设法在很短的时间内编写了它。即使是新手。我只是想知道人们的意见。干净吗? “好”?你会把它浓缩更多吗?不同的方法?
欢迎所有建议。非常感谢。