读取特定目录下所有的文件夹, 和文件名os.walk()
os.walk("./")是我最喜欢的api之一, 作用是获取某个路径下,所有的文件夹和文件的路径, 如果你是一个喜欢写脚本的人, 那这个api或许能帮你更优雅的实现你的程序~
import os
for relative_file_dir_path, file_dir_name, file_name in os.walk('./'):
print("当前文件夹路径(字符串)", relative_file_dir_path)
print("当前文件夹目录下包含的文件夹(数组)", file_dir_name)
print("当前文件夹目录下包含的文件名(数组)", file_name)
print("---"*10)
这个操作非常适合编写文件处理脚本, 比如你想将某个目录下的markdown文件批量转换为word文档, 参考Python将md批量转为docx, 或者将less批量转换为css, 参考批量转换less至css, 配合其他优秀的库, 你可以完成一些好玩的操作, 比如 网站图片素材中文转英文
深拷贝
相比js蛋疼的深拷贝操作, python的深拷贝简单粗暴
copy_name = deepcopy(name)
from copy import deepcopy
name = ["z", "h", "a", "o", "o", "l", "e", "e"]
copy_name = deepcopy(name)
copy_name[0] = "Z"
print("原列表", name);
print("新列表", copy_name)
一个优秀的api就应该简洁强大, 见名知意, 反向对比js的深拷贝, js的深拷贝简直就是一门学问, 而且几乎是面试必问, 当然深入研究一下也并非不好, 但如果开发者精力有限, 优秀的api可以极大提升我们的工作效率
随机取字符串(点名利器)
如果你想写一个点名的小程序, python一行代码就能搞定~
import random
for i in range(10):
group = random.choice(["白月初", "东方月初", "苏苏", "红红", "王富贵", "清瞳"])
print("第", i,"周", group, "打扫教室...")
反向切片
python的切片操作可谓是优雅强大, 通过反向切片, 你可以迅速获得一个列表的反向序列
对列表进行反序是一个很常见的操作, 但python反向切片的玩法实在是非常简洁, 让人无法拒绝, 其实对某一数据结构进行"反向"是一个很有意思的操作, 比如对二叉树进行反序 明星程序员被Google挂掉的故事, 还有google著名的在不使用额外空间的前提下, 对句子内的单词进行反序
的问题, 比如将This is a pen
反向为pen a is This
小结
- Python为我们提供了大量好用的api, 可以让我们的需求快速得到实现, 极大提升我们的开发效率, 但很多问题, 并不是用几个简单api就能搞定的, 比如前面提到的google的在不使用额外空间的情况下, 将
This is a pen
反向为pen a is This
, 这个题目的解法非常巧妙, 首先将This is a pen
转换为nep a si sihT
, 然后根据空格所处的位置, 将单个的单词自身的序列进行调换, 这样就可以将,nep a si sihT
转换为pen a is This
- 优秀的算法能让我们以更少的资源的实现程序, 优秀的api能提升我们的开发效率, 或许优秀的工程师, 就是在二者之间把握平衡的那类人吧~