Vai*_*wal 6 python global function list
在python中,我有一个函数返回网站上最新链接(到文件夹)的列表.我还有另一个从这些文件夹下载最新文件的功能.我计划每天运行这个脚本.我有一个全局列表,其中包含下载功能每次运行最新文件夹时访问的文件夹链接.我想每五天更新一次全局列表,并在接下来的5天内保持静态,我会运行代码,直到它再次更新.
它有点像这样:
list = ["link1", "link2",...]
def update():
#code to update list
return list
def download(list):
#code to download from links
Run Code Online (Sandbox Code Playgroud)
所以我希望更新功能每5天运行一次(我知道该怎么做)以及每天运行的下载功能.那么如何将update()static返回的列表作为全局列表保留,直到它再次更新为止?
编辑:让我试着澄清一下:
我在星期一运行这个:
list = ["link1", "link2"]
def update():
#code to update list
return list #--> list = ["link1", "link2", "link3"]
def download(list):
#code to download from links
Run Code Online (Sandbox Code Playgroud)
这工作正常,列表已更新并在download()中使用.
我在星期二运行:
list = ["link1", "link2"]
#update() won't run today, only runs every 5 days
def update():
#code to update list
return list #--> list = ["link1", "link2", "link3"]
def download(list):
#code to download from links
Run Code Online (Sandbox Code Playgroud)
我重新启动了我的代码,但现在列表中没有来自星期一的link3.如何在接下来的5天内将link3保留在列表中,直到我再次更新列表?
谢谢
Ash*_*ary 12
使用global声明.但是global,如果您在原地修改它们,则不需要可变对象.
您可以使用模块pickle将列表存储在文件中.您可以在要使用时加载列表,并在进行修改后将其存储回来.
lis = ["link1", "link2",...]
def update():
global lis
#do something
return lis
Run Code Online (Sandbox Code Playgroud)
泡菜示例:
import pickle
def update():
lis = pickle.load( open( "lis.pkl", "rb" ) ) # Load the list
#do something with lis #modify it
pickle.dump( lis, open( "lis.pkl", "wb" ) ) #save it again
Run Code Online (Sandbox Code Playgroud)
为了获得更好的性能,您还可以使用cPickle模块.
| 归档时间: |
|
| 查看次数: |
25628 次 |
| 最近记录: |