天天看點

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能提升我們的開發效率, 或許優秀的工程師, 就是在二者之間把握平衡的那類人吧~