OS 文件夹
自动创建文件夹
import os # 导入必要模块
path="/home/username/.." #文件保存路径,如果不存在就会被重建
os.makedirs(path,exist_ok=True)
判断文件是否在路径存在
os.path.isfile(save_dir + '/' + sess_num + '.csv')
CPU并行计算 (re search,以mat格式文件为例)
导入必要python包
import scipy.io import glob import re import sys, os from joblib import Parallel, delayed
导入mat格式文件
mat = scipy.io.loadmat(file_name_i, squeeze_me=True, struct_as_record=True)
* 用re包搜索mat格式文件的名字,比如
try: sess_num = re.search(r'(/)([0-9]*)(.mat)',file_name_i).group(2) except: sess_num = re.search(r'(/)([0-9]*_[0-9]*)(.mat)',file_name_i).group(2)其中re.research的用法举例
a = "123abc456"
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0) #123abc456,返回整体
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(1) #123
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(2) #abc
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(3) #456group(num)的num返回的是第几个括号
* 加载后缀为.mat的文件名
mat_files_match = data_dir + '/*.mat' data_files = glob.glob(mat_files_match) data_files.sort()
并行计算
先定义main函数(以传入file name为例)
def main(file_name_i):[要运行的程序]
再并行运行,如果要返回值,return或者保存存下来
njobs = 27 Parallel(n_jobs=njobs)( delayed(main) (file_name_i) for file_name_i in data_files )
查看内存占用
def get_memory_usage():
memory = psutil.virtual_memory()
used_memory = memory.used / (1024**3)
free_memory = memory.available /(1024**3)
# total_memory = memory.total / (1024**3)
return used_memory, free_memory
used_memory, free_memory = get_memory_usage()
print(f"Used Memory: {used_memory} GB, {used_memory/free_memory} %")