文章目录
Queue
import queue
a = queue.Queue()
a.put(1)
a.put('2222')
a.put('[1,2,3]')
a.put([1,2,3])
print(f"a-Queue: {a.queue}")
Yield
Recursively get specified type of files
def get_files(videofolder):
for f in os.listdir(videofolder):
if '.' not in f:
yield from get_files(os.path.join(videofolder,f))
else:
yield os.path.join(videofolder,f)
path = "E:\RL"
myvideos = list(get_files(path))
这里的list(get_files(path))
不能弄成[get_files(path)]
. 这里是将yield 形成的generator转成list, 所以要用list()
, 而不是为了接收yield的内容。
文件名排序
单一的数字排序
files.sort(key=lambda f: int(re.sub('\D', '', f)))
多个数字
thefiles = os.listdir(folder)
sorted(thefiles, key=lambda x: x.split('_'))
结果:
['03_25_11_56_2.npy',
'03_25_12_36_2.npy',
'03_25_12_16_2.npy',
'03_25_12_56_2.npy,
'03_25_19_24_2.npy',
'03_26_21_22_2.npy',
'03_26_21_42_2.npy',
'03_26_22_22_2.npy',
'03_26_22_02_2.npy',
'03_27_13_57_2.npy',
'03_27_14_17_2.npy',
'03_27_15_00_2.npy', ]
Conda
新建环境
conda create -n myenv python=3.9
导出
先进入要导出的环境:
conda activate YOUR_ENV
再导出到文件“myenvironment.yml”
conda env export > myenvironment.yml
导进
conda env create -f myenvironment.yml
检查
需要等一下,有点慢
conda env list
删除
conda env remove -n ENV_NAME
Producer–Consumer
Producer
- 往共用数据容器里添加数据
- 需要额外的time.sleep()时间
- 在强调时序的地方,需要用lock
- 如果有内部更改变量需要返回的,要用join(),否则无限循环
Consumer
- 从共用数据共享池里使用数据
- 不需要额外的time.sleep()
- 在强调时序的地方,需要用lock
- 如果有内部更改变量需要返回的,要用join()否则无限循环