Python 기본 내장 모듈 상세 설명

13951 단어 Python내장 모듈
하나,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/hqss/PycharmProjects/luffyCourse/day14/commons")
    print(data)
    # ['convert.py', '__init__.py', 'page.py', '__pycache__', 'utils.py', 'tencent']
    """
     
    """
                  ,  :         mp4  
    """
     
    data = os.walk("/Users/hqss/Documents/    /  Python/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)
    
    shutil
    
    import shutil
     
    # 1.      
    """
    path = os.path.join(base_path, 'xx')
    shutil.rmtree(path)
    """
     
    # 2.      
    """
    shutil.copytree("/Users/hqss/Desktop/ /csdn/","/Users/hqss/PycharmProjects/CodeRepository/files")
    """
     
    # 3.    
    """
    shutil.copy("/Users/hqss/Desktop/ /csdn/[email protected]","/Users/hqss/PycharmProjects/CodeRepository/")
    shutil.copy("/Users/hqss/Desktop/ /csdn/[email protected]","/Users/hqss/PycharmProjects/CodeRepository/x.png")
    """
     
    # 4.         
    """
    shutil.move("/Users/hqss/PycharmProjects/CodeRepository/x.png","/Users/hqss/PycharmProjects/CodeRepository/xxxx.png")
    shutil.move("/Users/hqss/PycharmProjects/CodeRepository/files","/Users/hqss/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')
    
    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/hqss/PycharmProjects/luffyCourse/day14/2.         .py'
    # ]
     
    # [
    #     "2.         .py"
    # ]
     
    # ['2.         .py', '127', '999', '666', 'wupeiqi']
     
    #   ,            。
     
    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()
    
    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("   ".encode('utf-8'))
    result = hash_object.hexdigest()
    print(result)
    
    import hashlib
     
    hash_object = hashlib.md5("iajfsdunjaksdjfasdfasdf".encode('utf-8'))
    hash_object.update("   ".encode('utf-8'))
    result = hash_object.hexdigest()
    print(result)
    
    6.configparser
    주 소 를 보십시오.Python 은 configparser 를 사용 하여 ini 프로필 을 읽 습 니 다.https://www.jb51.net/article/187233.htm
    xml
    상세 한 것 은 주소,python 사용자 정의 로 간단 한 xml 형식 파일 을 해석 하 는 방법 입 니 다.https://www.jb51.net/article/65886.htm
    제 이 슨
    json 모듈 은 python 내부 의 모듈 로 python 의 데이터 형식 을 json 형식의 데이터 로 변환 할 수도 있 고 json 형식의 데 이 터 를 python 의 데이터 형식 으로 변환 할 수도 있 습 니 다.
    json 형식 은 데이터 형식 입 니 다.
    
    # Python         
    data = [
        {"id": 1, "name": "   ", "age": 18},
        {"id": 2, "name": "alex", "age": 18},
        ('wupeiqi',123),
    ]
     
    # JSON  
    value = '[{"id": 1, "name": "   ", "age": 18}, {"id": 2, "name": "alex", "age": 18},["wupeiqi",123]]'
    
    핵심 기능
    json 형식의 역할
    크로스 언어 데이터 전송,예:
        A 시스템 은 Python 으로 개발 되 며 목록 유형 과 사전 유형 등 이 있 습 니 다.
        B 시스템 은 자바 로 개발 되 며 배열,맵 등 이 있 는 유형 입 니 다.
        언어 가 다 르 고 기본 데이터 형식 이 다 릅 니 다.
        
        데이터 전송 을 편리 하 게 하기 위해 서 는 json 형식 을 약속 합 니 다.모든 언어 는 자신의 데이터 형식 을 json 형식 으로 바 꾸 고 json 형식의 데 이 터 를 자신의 데이터 형식 으로 바 꿀 수 있 습 니 다.

    Python 데이터 형식 과 json 형식의 상호 변환:
  • 데이터 형식->json,일반적으로 직렬 화
  • 라 고 부른다.
    
    import json
     
    data = [
        {"id": 1, "name": "    ", "age": 18},
        {"id": 2, "name": "alex", "age": 18},
    ]
     
    res = json.dumps(data)
    print(res) # '[{"id": 1, "name": "\u6b66\u6c9b\u9f50", "age": 18}, {"id": 2, "name": "alex", "age": 18}]'
     
    res = json.dumps(data, ensure_ascii=False)
    print(res) # '[{"id": 1, "name": "    ", "age": 18}, {"id": 2, "name": "alex", "age": 18}]'
    
  • json 형식->데이터 형식,일반적으로 반 직렬 화
  • 라 고 부른다.
    
    import json
     
    data_string = '[{"id": 1, "name": "    ", "age": 18}, {"id": 2, "name": "alex", "age": 18}]'
     
    data_list = json.loads(data_string)
     
    print(data_list)
    
    유형 요구 사항
    python 의 데이터 형식 은 json 형식 으로 바 뀌 었 습 니 다.데이터 형식 에 대한 요구 가 있 습 니 다.기본 값 은 다음 과 같 습 니 다.
    
     +-------------------+---------------+
        | Python            | JSON          |
        +===================+===============+
        | dict              | object        |
        +-------------------+---------------+
        | list, tuple       | array         |
        +-------------------+---------------+
        | str               | string        |
        +-------------------+---------------+
        | int, float        | number        |
        +-------------------+---------------+
        | True              | true          |
        +-------------------+---------------+
        | False             | false         |
        +-------------------+---------------+
        | None              | null          |
        +-------------------+---------------+
     
     
    data = [
        {"id": 1, "name": "   ", "age": 18},
        {"id": 2, "name": "alex", "age": 18},
    ]
    
    다른 유형 이 지원 하려 면 사용자 정의JSONEncoder가 필요 합 니 다.
    
    import json
    from decimal import Decimal
    from datetime import datetime
     
    data = [
        {"id": 1, "name": "   ", "age": 18, 'size': Decimal("18.99"), 'ctime': datetime.now()},
        {"id": 2, "name": "alex", "age": 18, 'size': Decimal("9.99"), 'ctime': datetime.now()},
    ]
     
     
    class MyJSONEncoder(json.JSONEncoder):
        def default(self, o):
            if type(o) == Decimal:
                return str(o)
            elif type(o) == datetime:
                return o.strftime("%Y-%M-%d")
            return super().default(o)
     
     
    res = json.dumps(data, cls=MyJSONEncoder)
    print(res)
    
    기타 기능
    json 모듈 에서 자주 사용 하 는 것 은:json.dumps문자열 을 직렬 화 합 니 다.json.loads,직렬 화 를 통 해 python 데이터 형식 을 생 성 합 니 다.json.dump데 이 터 를 정렬 하여 파일 에 기록 합 니 다(자주 사용 되 지 않 음)
    
    import json
     
    data = [
        {"id": 1, "name": "   ", "age": 18},
        {"id": 2, "name": "alex", "age": 18},
    ]
     
    file_object = open('xxx.json', mode='w', encoding='utf-8')
     
    json.dump(data, file_object)
     
    file_object.close()
    
  • json.load파일 의 데 이 터 를 읽 고 python 의 데이터 형식 으로 역 정렬(자주 사용 되 지 않 음)
  • 
    import json
     
    file_object = open('xxx.json', mode='r', encoding='utf-8')
     
    data = json.load(file_object)
    print(data)
     
    file_object.close()
    시간
    
    import time
     
    #        ( 1970-1-1 00:00)
    v1 = time.time()
    print(v1)
     
    #   
    v2 = time.timezone
     
    #   n ,        。
    time.sleep(5)
    datetime
    평소 개발 과정 에서 의 시간 은 일반적으로 다음 과 같은 세 가지 형식 이 존재 한다 고 생각 합 니 다.
  • datetime
  • 
    from datetime import datetime, timezone, timedelta
     
    v1 = datetime.now()  #       
    print(v1)
     
    tz = timezone(timedelta(hours=7))  #    7   
    v2 = datetime.now(tz)
    print(v2)
     
    v3 = datetime.utcnow()  #   UTC  
    print(v3)
    
    
    from datetime import datetime, timedelta
     
    v1 = datetime.now()
    print(v1)
     
    #      
    v2 = v1 + timedelta(days=140, minutes=5)
    print(v2)
     
    # datetime   + timedelta  
    
    
    from datetime import datetime, timezone, timedelta
     
    v1 = datetime.now()
    print(v1)
     
    v2 = datetime.utcnow()  #   UTC  
    print(v2)
     
    # datetime    ,      (    )
    data = v1 - v2
    print(data.days, data.seconds / 60 / 60, data.microseconds)
     
    # datetime   - datetime  
    # datetime      datetime  
    
  • 문자열
  • 
    #           --->    datetime    
    text = "2021-11-11"
    v1 = datetime.strptime(text,'%Y-%m-%d') # %Y  ,%m,  ,%d, 。
    print(v1)
    
    # datetime   ---->         
    v1 = datetime.now()
    val = v1.strftime("%Y-%m-%d %H:%M:%S")
    print(val)
  • 타임 스탬프
  • 
    #       -->    datetime  
    ctime = time.time() # 11213245345.123
    v1 = datetime.fromtimestamp(ctime)
    print(v1)
    
    # datetime   --->         
    v1 = datetime.now()
    val = v1.timestamp()
    print(val)

    보충:
  • UTC/GMT:세계 시간
  • 로 컬 시간:로 컬 시간 대.
  • Python 에서 시간 처리 에 관 한 모듈 은 두 가지 가 있 는데 그것 이 바로 time 과 datetime 이다.
    이로써 파 이 썬 이 자주 사용 하 는 10 개의 내장 모듈 정 리 는 여기 서 끝 났 습 니 다.비판 과 지적 을 환영 합 니 다!
    파 이 썬 기반 의 내장 모듈 에 대한 자세 한 설명 은 여기까지 입 니 다.더 많은 파 이 썬 내장 모듈 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기