Python3好用的原生api

读取特定目录下所有的文件夹, 和文件名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能提升我们的开发效率, 或许优秀的工程师, 就是在二者之间把握平衡的那类人吧~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏linxu shell指南

软件构件、中间件、面向对象

    1、构件定义:组(构)件是软件系统可替换的、物理的组成部分,它封装了实现体(实现某个职能)并提供了一组接口的实现方法。可以认为组件是一个封装的代码模块或...

2694
来自专栏用户2442861的专栏

python list常用方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

922
来自专栏知识分享

(五)Lua脚本语言入门

---恢复内容开始--- 写完这篇Lua脚本语言入门,自己就要尝试去用Lua脚本语言写esp8266了,,自己现在挺心急的,因为朋友使用esp8266本来说自己...

3874
来自专栏zhisheng

《从0到1学习Flink》—— Data Source 介绍

Flink 做为一款流式计算框架,它可用来做批处理,即处理静态的数据集、历史的数据集;也可以用来做流处理,即实时的处理些实时数据流,实时的产生数据流结果,只要数...

1553
来自专栏向治洪

Java中的ReentrantLock和synchronized两种锁机制的对比

原文:http://www.ibm.com/developerworks/cn/java/j-jtp10264/index.html 多线程和并发性并不是什...

2415
来自专栏我是攻城师

如何使用neo4j存储树形无限级菜单

4856
来自专栏吉浦迅科技

DAY49:阅读Arithmetic Functions和Bitwise Functions

reads the 32-bit or 64-bit word old located at the address address in global or...

1243
来自专栏我有一个梦想

游戏开发之在UE4中编写C++代码控制角色

当你运行我们上次做完的项目,你可能会意识到我们移动的摄像机还是默认的那个摄像机,这个默认的摄像机可以自由飞翔。这一节,我们要使得开始的角色是我们的一个Avata...

39710
来自专栏程序员互动联盟

【答疑释惑第四十三讲】到底什么是可执行文件?

疑惑一 到底什么是可执行文件? 可执行文件由一系列段(section)组成,text段用于存储代码,data段存储变量等数据,bss段用于存储未初始化的数据,比...

3306
来自专栏Python中文社区

基于Redis的Bloomfilter去重

专栏作者简介 九茶 Python工程师,目前居于广州。Github知名开源爬虫QQSpider和SinaSpider作者,经常会在CSDN上分享一些爬虫、数据等...

1K8

扫码关注云+社区

领取腾讯云代金券