2017-04-20 64 views
1

我正在製作一個程序,可以通過按鈕遠程記錄相機上的視頻,並在完成記錄後將視頻文件保存到外部。即使程序關閉也會增加的變量

我需要知道視頻文件的名稱才能訪問它,並且每次視頻保存時,文件中的數字都會增加。

E.g.第一個保存的視頻是mov_0001,那麼下一次我保存一個新的視頻它是mov_0002

有沒有辦法讓一個變量增加,它保存在最後一個值是什麼,所以即使我關閉程序,再次打開它將會是上一次程序運行的結果?

+2

在這篇文章中唯一的問題的答案是**是**。怎麼辦?爲了得到高質量的答案提供重要的是[高品質問題(http://stackoverflow.com/help/how-to-ask),包括建立一個[最小,完整,可驗證](HTTP:/ /stackoverflow.com/help/mcve)示例。 –

回答

2

您可以使用file方法存儲下一個使用哪個計數器。

使用正常的文本文件或Pickle文件或Json文件來存儲視頻文件名的計數器。

演示:

酸洗 - 如何存儲泡菜文件值。

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


查找文件名。從位置,可以通過使用os.lidtdir("$Vedio_location_path$")

  • 現在通過使用list sort方法或sorted功能排序,從1點文件清單列表存儲視頻文件

    1. 獲取視頻文件列表。
    2. 從視頻列表中獲取最後的文件名。
    3. 由於你的名字有特定的模式,所以按照模式溢出並得到你使用的最後一個計數器值。
    4. 將計數器加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 
    

    注:

    1. 做必要的異常處理。
    2. 使用默認值爲1,那麼您的商店位置不存在視頻文件。
    3. 您還可以修改上面的算法,如果任何文件被刪除拿到櫃檯。

    E.g

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

    ii。現在我們刪除mov_0003文件,因此名單是["mov_0001", "mov_0002", "mov_0004"]

    III。根據上述算法中使用計數器的值將是4,但你可以修改算法,以獲取刪除文件計數器。


  • 相關問題