Python自学网站PythonCodeExample

从前车马慢 2022-06-21 17:33:30

PythonCodeExample是我偶然间发现的网站,里面提供了许多Python常用模块的优雅写法,这个网站打开可以直接检索自己想要学习的代码示例,并且示例种类非常多,主网站还提供了许多其他语言的例子。

这里分享下python常用模块的用法。向大佬学习真的是非常快的学习方法。

1.os.makedirs()

创建多级目录,创建一级使用os.mkdir

主要的两种写法,用try-except和if语句判断是否已经存在文件夹

try: os.makedirs(path)except Exception as e: raise e realpath = os.path.abspath(path) path_exists = os.path.exists(realpath) if path_exists and force:     if not os.path.isdir(realpath):         log("Removing non-directory file {} prior to mkdir()".format(path))         os.unlink(realpath)         os.makedirs(realpath, perms)elif not path_exists:      os.makedirs(realpath, perms)

2.os.walk(top, topdown=True, onerror=None, followlinks=False)

os.walk 的返回值是一个生成器(generator),每次遍历的对象都是返回的是一个三元组(root, dirs, files), root 所指的是当前正在遍历的这个文件夹的本身的地址,dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录), files 同样是 list,内容是该文件夹中所有的文件(不包括子目录).如果 topdown 参数为真,walk 会遍历 top 文件夹,与top文件夹中每一个子目录。

for root, dirs, files in os.walk(path):      for file in files:           zipn.write(os.path.join(root, file))

3. shutil.copy(filename, generic_filename)

if copy:        shutil.copy(filename, download_location)        logger.notify('Saved %s' % display_path(download_location)) requirements = os.path.join(tempdir, 'requirements.txt')shutil.copy('tests/samples/requirements.txt', requirements)

4. glob.glob

匹配路径下的某种规则的文件。返回list

imgs_list = glob.glob(os.path.join(root, sDir, '*.png'))

5. lambda表达式

p = lambda a, b: (a**2 + b**2) ** 0.5p(1,2)

6.map(func, *iterables) --> map object表达式

s1 = [1,2,3]s2 = [4,5,6]t = map(lambda x,y: x+y,s1,s2)print(list(t)) 返回可迭代对象,需要list调用来显示所有结果

7.filter(function or None, sequence) ->iterator

filter函数会对序列参数sequence中的每个元素调用function函数,最后返回的结果包含调用结果为True的元素。

s1 = [1,2,3]t = map(lambda x: x>2,s1)

8.批量修改文件名

import ospath="train"filename_list = os.listdir("train")map=dict(zip(list1,list2))for item in filename_list:    os.rename(os.path.join(path, item),os.path.join(path, "train_"+str(map[item])+".csv"))

9.批量读取csv

filename_list = os.listdir("train")train_data=[]for item in filename_list:    train_data.append(pd.read_csv(path+"/"+item))train_data=pd.concat(train_data)

10.numpy 的数组拼接,vstack,hstack,concatenate,stack

np.vstack 沿着axis=0拼接p.concatenate([a,b],axis=0)等价np.hstack 沿着axis=1拼接 和np.concatenate([a,b],axis=1)等价

stack可以输入array和一组array,对于一个array即对重新选取排列。

大家关于Python 有什么看法也可以一起讨论哈!以上如有写的不对的地方多多包涵,烦请赐教。

0 阅读:50

从前车马慢

简介:本人大鱼号会涉及,娱乐、科技等多方面文章