tqdm和pickle的使用,datetime和time的使用,SimpleNamespace和glob的使用

1.glob.glob()

glob.glob(root+"/*.png“) 
#可以匹配root目录下所有的png文件。

2.以时间作为文件名
link: introduction to time module in python

import datetime
import os
SEQUENCE = datetime.datetime.now().strftime("%m%d-%H%M%S") # obtain current time
SAVED_MODEL_PATH = os.path.split(os.path.abspath(__file__))[0]+"/saved_model/"+SEQUENCE+'/'  # path to save model
if not os.path.exists(os.path.split(os.path.abspath(__file__))[0]+"/saved_model/"): 
    os.mkdir(os.path.split(os.path.abspath(__file__))[0]+"/saved_model/")
if not os.path.exists(SAVED_MODEL_PATH):
    os.mkdir(SAVED_MODEL_PATH)
# SAVED_MODEL_PATH为保存model的路径

3.记录时间

t = time.time()
print("encoding took " + str(time.time() - t) + 's')

4.pickle的使用 link
pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。python中几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化,

# with open("test.txt", "wb") as fp:   #Pickling
#     pickle.dump(l, fp)
# with open("test.txt", "rb") as fp:   # Unpickling
#     b = pickle.load(fp)
pickle.dump(obj, file[, protocol])
  #序列化对象,并将结果数据流写入到文件对象中。参数protocol是序列化模式,默认值为0,
  #表示以文本的形式序列化。protocol的值还可以是1或2,表示以二进制的形式序列化。
pickle.load(file) #反序列化对象。将文件中的数据解析为一个Python对象。

5.tqdm link

from tqdm import tqdm
import time
例1:
for i in tqdm(range(1000)):  
     print(i)2:
with tqdm(total=100) as bar: # total表示预期的迭代次数
    for i in range(100): # 同上total值
        time.sleep(0.1)
        bar.update(1)  #每次更新进度条的长度

6.使用"."运算符访问字典
types.SimpleNamespace()

>> from types import SimpleNamespace
>>> d = {'a': 1, 'b':2}
>>> sn = SimpleNamespace(**d)  # 这里的**不可以少,表示命名关键字参数
>>> sn    #namespace(a=1, b=2)
>>> sn.a  #1

7.判断一个数是否为2的整数幂 使用python常用的一些技巧
将n与n-1做按位与运算

if (scale & (scale - 1)) == 0:
	print(“ok!”)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,以下是Python的代码实现: 使用pickle模块写入和读取二进制文件: ```python import pickle data = [1, 2, 3, 4, 5, 6, 7, 8, 9] # 写入二进制文件 with open("digit.pickle", "wb") as f: pickle.dump(data, f) # 读取二进制文件 with open("digit.pickle", "rb") as f: loaded_data = pickle.load(f) print(loaded_data) # 输出 [1, 2, 3, 4, 5, 6, 7, 8, 9] ``` 解释一下代码: 首先,我们导入了Python内置的`pickle`模块。 接着,我们定义了一个整数列表`data`,包含数字1到9。 然后,我们使用`open`函数打开一个名为`digit.pickle`的二进制文件,模式为写入("wb")。然后使用`pickle.dump`方法将整数列表写入文件中。 接下来,我们使用`open`函数再次打开名为`digit.pickle`的文件,模式为读取("rb")。然后使用`pickle.load`方法从文件中读取数据并存储在`loaded_data`变量中。 最后,我们输出`loaded_data`变量,即读取到的整数列表。 使用struct模块写入和读取二进制文件: ```python import struct data = [1, 2, 3, 4, 5, 6, 7, 8, 9] # 写入二进制文件 with open("digit.bin", "wb") as f: for num in data: f.write(struct.pack(">i", num)) # 读取二进制文件 loaded_data = [] with open("digit.bin", "rb") as f: while True: buf = f.read(4) if not buf: break loaded_data.append(struct.unpack(">i", buf)[0]) print(loaded_data) # 输出 [1, 2, 3, 4, 5, 6, 7, 8, 9] ``` 解释一下代码: 首先,我们导入了Python内置的`struct`模块。 接着,我们定义了一个整数列表`data`,包含数字1到9。 然后,我们使用`open`函数打开一个名为`digit.bin`的二进制文件,模式为写入("wb")。然后使用`struct.pack`方法将整数转换为4个字节的二进制数据,并使用`write`方法将其写入文件中。 接下来,我们使用`open`函数再次打开名为`digit.bin`的文件,模式为读取("rb")。然后使用一个`while`循环从文件中读取数据,每次读取4个字节,并使用`struct.unpack`方法将其转换为整数并添加到`loaded_data`列表中。当读取到文件末尾时,退出循环。 最后,我们输出`loaded_data`变量,即读取到的整数列表。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值