gpt4 book ai didi

python - 即使程序关闭也会递增的变量

转载 作者:行者123 更新时间:2023-12-01 03:04:56 24 4
gpt4 key购买 nike

我正在制作一个程序,可以通过按下按钮在摄像机上远程录制视频,并在录制完成后将视频文件保存到外部。

我需要知道视频文件的名称才能访问它,每次保存视频时,文件中的数字都会递增。

例如第一个保存的视频是 mov_0001,然后下次保存新视频时它是 mov_0002

有没有一种方法可以使变量递增并保存为最后一个值,这样即使我关闭程序并再次打开它,它也会是程序上次运行时的值?

最佳答案

您可以使用文件方法来存储接下来使用哪个计数器。

使用普通文本文件或Pickle文件或Json文件来存储视频文件名计数器。

演示:

Pickling - 如何在 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
>>>

注意:如果没有,请使用默认值 1。

Documentation of Pickle

Demo of Pickling and Unpickling

<小时/>

查找文件名中具有较大计数器的文件名。

  1. 使用os.lidtdir("$Vedio_location_path$")从存储视频文件的位置获取视频文件列表
  2. 现在使用 list sort 方法或 sorted 函数对从点 1 开始的文件列表进行排序。
  3. 从视频列表中获取最后一个文件名。
  4. 由于您的名称具有特定的模式,因此根据模式进行溢出并获取您使用的最后一个计数器值。
  5. 将计数器加一并用于存储下一个视频文件。

演示:

>>> 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

注意:

  1. 进行必要的异常处理。
  2. 使用默认值 1,则您的商店位置不存在视频文件。
  3. 您还可以修改上述算法来获取删除任何文件的计数器。

例如

我。假设有 ["mov_0001", "mov_0002", "mov_0003", "mov_0004"] 文件。

ii.现在我们删除了 mov_0003 文件,因此列表为 ["mov_0001", "mov_0002", "mov_0004"]

三.根据上面的算法,使用的计数器值将为4,但您可以修改算法来获取已删除文件计数器。

<小时/>

关于python - 即使程序关闭也会递增的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43511345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com