我正在制作一个程序,可以通过按下按钮在相机上远程录制视频,并在我完成录制后将视频文件保存到外部。
我需要知道要访问它的视频文件的名称,每次视频保存时,文件中的数字都会增加。
E.g。第一个保存的视频是mov_0001,然后下次保存新视频时它的mov_0002
有没有办法让变量递增,并且它保存在最后一个值的任何位置,所以即使我关闭程序并再次打开它,它将是上一次程序运行的时间?
答案 0 :(得分:2)
您可以使用文件方法存储下一个使用哪个计数器。
使用普通文本文件或Pickle文件或Json文件来存储视频文件名的计数器。
<强>演示:强>
酸洗 - 如何在pickle文件中存储值。
>>> import pickle
>>> store_file = "file_counter.txt"
>>> counter = 10
>>> fp = open(store_file, "w")
>>> pickle.dump(counter, fp)
>>> fp.close()
Unpickling-如何从pickle文件中提取值。
>>> fp_r = open(store_file, "r")
>>> old_counter = pickle.load(fp_r)
>>> old_counter
10
>>>
注意:如果没有,请使用默认值。
Demo of Pickling and Unpickling
查找文件名中包含更多计数器的文件名。
os.lidtdir("$Vedio_location_path$")
list sort
方法或sorted
函数对第1点的文件列表进行排序。<强>演示:强>
>>> video_files = ["mov_0001", "mov_0002", "mov_0005", "mov_0003"]
>>> video_files.sort()
>>> video_files
['mov_0001', 'mov_0002', 'mov_0003', 'mov_0005']
>>> last_file = video_files[-1]
>>> counter = int(last_file.split("_")[1])
>>> counter
5
注意:强>
E.g
我。假设有["mov_0001", "mov_0002", "mov_0003", "mov_0004"]
个文件。
II。现在我们删除了mov_0003
文件,因此列表为["mov_0001", "mov_0002", "mov_0004"]
III。根据上述算法,使用的计数器值为4
,但是您可以修改算法以获取已删除的文件计数器。