天天看點

Python常用内置子產品

内置子產品

1、 os

import os

# 1. 擷取目前腳本絕對路徑
"""
abs_path = os.path.abspath(__file__)
print(abs_path)
"""

# 2. 擷取目前檔案的上級目錄
"""
base_path = os.path.dirname( os.path.dirname(路徑) )
print(base_path)
"""

# 3. 路徑拼接
"""
p1 = os.path.join(base_path, 'xx')
print(p1)

p2 = os.path.join(base_path, 'xx', 'oo', 'a1.png')
print(p2)
"""

# 4. 判斷路徑是否存在
"""
exists = os.path.exists(p1)
print(exists)
"""

# 5. 建立檔案夾
"""
os.makedirs(路徑)
"""
"""
path = os.path.join(base_path, 'xx', 'oo', 'uuuu')
if not os.path.exists(path):
    os.makedirs(path)
"""

# 6. 是否是檔案夾
"""
file_path = os.path.join(base_path, 'xx', 'oo', 'uuuu.png')
is_dir = os.path.isdir(file_path)
print(is_dir) # False

folder_path = os.path.join(base_path, 'xx', 'oo', 'uuuu')
is_dir = os.path.isdir(folder_path)
print(is_dir) # True

"""

# 7. 删除檔案或檔案夾
"""
os.remove("檔案路徑")
"""
"""
path = os.path.join(base_path, 'xx')
shutil.rmtree(path)
"""

           
  • listdir,檢視目錄下所有的檔案
  • walk,檢視目錄下所有的檔案(含子孫檔案)
import os

"""
data = os.listdir("/Users/dean/PycharmProjects/mkcourse/day14/commons")
print(data)
# ['convert.py', '__init__.py', 'page.py', '__pycache__', 'utils.py', 'tencent']
"""

"""
要周遊一個檔案夾下的所有檔案,例如:周遊檔案夾下的所有mp4檔案
"""

data = os.walk("/Users/dean/Documents/mp4")
for path, folder_list, file_list in data:
    for file_name in file_list:
        file_abs_path = os.path.join(path, file_name)
        ext = file_abs_path.rsplit(".",1)[-1]
        if ext == "mp4":
            print(file_abs_path)
           

2、 shutil

import shutil

# 1. 删除檔案夾
"""
path = os.path.join(base_path, 'xx')
shutil.rmtree(path)
"""

# 2. 拷貝檔案夾
"""
shutil.copytree("/Users/dean/Desktop/圖/csdn/","/Users/dean/PycharmProjects/CodeRepository/files")
"""

# 3.拷貝檔案
"""
shutil.copy("/Users/dean/Desktop/圖/csdn/[email protected]","/Users/dean/PycharmProjects/CodeRepository/")
shutil.copy("/Users/dean/Desktop/圖/csdn/[email protected]","/Users/dean/PycharmProjects/CodeRepository/x.png")
"""

# 4.檔案或檔案夾重命名
"""
shutil.move("/Users/dean/PycharmProjects/CodeRepository/x.png","/Users/dean/PycharmProjects/CodeRepository/xxxx.png")
shutil.move("/Users/dean/PycharmProjects/CodeRepository/files","/Users/dean/PycharmProjects/CodeRepository/images")
"""

# 5. 壓縮檔案
"""
# base_name,壓縮後的壓縮封包件
# format,壓縮的格式,例如:"zip", "tar", "gztar", "bztar", or "xztar".
# root_dir,要壓縮的檔案夾路徑
"""
# shutil.make_archive(base_name=r'datafile',format='zip',root_dir=r'files')


# 6. 解壓檔案
"""
# filename,要解壓的壓縮封包件
# extract_dir,解壓的路徑
# format,壓縮檔案格式
"""
# shutil.unpack_archive(filename=r'datafile.zip', extract_dir=r'xxxxxx/xo', format='zip')
           

3、 sys

import sys

# 1. 擷取解釋器版本
"""
print(sys.version)
print(sys.version_info)
print(sys.version_info.major, sys.version_info.minor, sys.version_info.micro)
"""

# 2. 導入子產品路徑
"""
print(sys.path)
"""

           
  • argv,執行腳本時,python解釋器後面傳入的參數
import sys

print(sys.argv)


# [
#       '/Users/dean/PycharmProjects/mkcourse/day14/2.接受執行腳本的參數.py'
# ]

# [
#     "2.接受執行腳本的參數.py"
# ]

# ['2.接受執行腳本的參數.py', '127', '999', '666', 'dean']

# 例如,請實作下載下傳圖檔的一個工具。

def download_image(url):
    print("下載下傳圖檔", url)


def run():
    # 接受使用者傳入的參數
    url_list = sys.argv[1:]
    for url in url_list:
        download_image(url)


if __name__ == '__main__':
    run()
           

4、 random

import random

# 1. 擷取範圍内的随機整數
v = random.randint(10, 20)
print(v)

# 2. 擷取範圍内的随機小數
v = random.uniform(1, 10)
print(v)

# 3. 随機抽取一個元素
v = random.choice([11, 22, 33, 44, 55])
print(v)

# 4. 随機抽取多個元素
v = random.sample([11, 22, 33, 44, 55], 3)
print(v)

# 5. 打亂順序
data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(data)
print(data)
           

5、 hashlib

import hashlib

hash_object = hashlib.md5()
hash_object.update("dean".encode('utf-8'))
result = hash_object.hexdigest()
print(result)
           
import hashlib

hash_object = hashlib.md5("iajfsdunjaksdjfasdfasdf".encode('utf-8'))
hash_object.update("dean".encode('utf-8'))
result = hash_object.hexdigest()
print(result)
           

繼續閱讀