파 이 썬 은 파일 디 렉 터 리 를 어떻게 조작 합 니까?

개술
I/O 작업 은 화면 입 출력 뿐만 아니 라 파일 의 읽 기와 쓰기 도 포함 합 니 다.Python 은 필요 한 방법 과 기능 을 많이 제공 하여 파일 과 폴 더 에 관 한 작업 을 합 니 다.본 고 는 주로 두 가지 간단 한 예 를 통 해 Python 이 폴 더 와 파일 에서 의 응용 을 약술 하고 학습 공유 에 만 사용 할 수 있 으 며 부족 한 점 이 있 으 면 지적 해 주 십시오.
지식 에 관련되다
os 모듈:os 모듈 은 파일 과 디 렉 터 리 를 처리 하 는 데 매우 풍부 한 방법 을 제공 합 니 다.
open 방법:open 방법 은 파일 을 열 어서 읽 기와 쓰기 에 사용 합 니 다.
인 스 턴 스 1:지정 한 디 렉 터 리 에 있 는 모든 파일 크기 를 가 져 오고 최대 파일 과 최소 파일 을 찾 습 니 다.
분해 단계:
폴 더 아래 의 모든 하위 파일 과 하위 폴 더 를 옮 겨 다 니 며 모든 파일 의 크기 를 계산 합 니 다.
모든 파일 의 크기 합 계 를 계산 합 니 다.
최대 파일 및 최소 파일 찾기
핵심 코드
방법 정의 getfile_size,단일 파일 을 가 져 오 는 크기,단 위 는 KB 와 MB 두 가지 입 니 다.관건 은 다음 과 같다.
  • os.path.getsize 는 지정 한 파일 의 크기 를 가 져 오 는 데 사 용 됩 니 다.단 위 는 Byte 입 니 다
  • 4.567917.round 는 반올림 함수 로 지정 한 자릿수 의 소 수 를 유지 합 니 다
    
    def get_file_size(file_path, KB=False, MB=False):
      """      """
      size = os.path.getsize(file_path)
      if KB:
        size = round(size / 1024, 2)
      elif MB:
        size = round(size / 1024 * 1024, 2)
      else:
        size = size
      return size
    방법 정의 listfiles,지정 한 파일 디 렉 터 리 를 옮 겨 다 니 며 사전 에 저장 합 니 다.관건 은 다음 과 같다.
  • os.path.isfile 은 주어진 경로 가 파일 인지 폴 더 인지 판단 하 는 데 사 용 됩 니 다
  • os.listdir 는 지정 한 디 렉 터 리 에 있 는 모든 파일 과 폴 더 를 가 져 와 목록 을 되 돌려 줍 니 다.그러나 현재 폴 더 의 이름 일 뿐 전체 경로 가 아 닙 니 다
  • 4
  • os.path.join 은 두 경 로 를 연결 하 는 데 사용 된다
  • 
    def list_files(root_dir):
      """    """
      if os.path.isfile(root_dir): #      
        size = get_file_size(root_dir, KB=True)
        file_dict[root_dir] = size
      else:
        #       ,   
        for f in os.listdir(root_dir):
          #     
          file_path = os.path.join(root_dir, f)
          if os.path.isfile(file_path):
            #        
            size = get_file_size(file_path, KB=True)
            file_dict[file_path] = size
          else:
            list_files(file_path)
    총 크기 와 최대 파일 및 최소 파일 을 계산 합 니 다.다음 과 같 습 니 다.
    사전 value 의 크기 를 비교 하여 대응 하 는 key 의 이름 을 되 돌려 줍 니 다.관건 은 다음 과 같다.
  • max_file = max(file_dict, key=lambda x: file_dict[x])
  • min_file = min(file_dict, key=lambda x: file_dict[x])
  • 
    if __name__ == '__main__':
      list_files(root_dir)
      # print( len(file_dict))
      #         
      total_size = 0
      #      key
      for file in file_dict:
        total_size += file_dict[file]
    
      print('total size is : %.2f' % total_size)
      #        
      max_file = max(file_dict, key=lambda x: file_dict[x])
      min_file = min(file_dict, key=lambda x: file_dict[x])
      print('max file is : ', max_file, '
    file size is :', file_dict[max_file]) print('min file is : ', min_file, '
    file size is :', file_dict[min_file])
    인 스 턴 스 2:두 텍스트 파일 의 내용 을 합 쳐 파일 에 저장 합 니 다.
    두 파일 의 내용 은 다음 그림 과 같다.

    분해 단계:
    4.567917.두 파일 의 내용 을 읽 고 key 와 value 를 분석 하여 사전 에 저장 합 니 다(두 사전,각각 두 파일 의 내용 을 저장 합 니 다)4.567917.첫 번 째 사전 을 옮 겨 다 니 며 두 번 째 사전 에서 같은 key 의 값 을 찾 습 니 다.존재 하지 않 으 면 첫 번 째 내용 만 표시 하고 존재 하면 합병 합 니 다4.567917.두 번 째 사전 을 옮 겨 다 니 며 첫 번 째 사전 에 없 는 key 의 값 을 찾 아 누적 합 니 다4.567917.연 결 된 목록 을 파일 에 저장 합 니 다.
    핵심 코드
    함수 정의 read북,두 파일 의 내용 을 읽 는 데 사 용 됩 니 다.관건 은 다음 과 같다.
  • open 함 수 는 파일 을 여 는 데 사 용 됩 니 다.파일 인 코딩 은 UTF-8 입 니 다
  • readlines 는 모든 줄 을 읽 고 목록 을 되 돌려 줍 니 다
  • split 는 문자열 을 배열 로 나 누 는 데 사 용 됩 니 다
  • 
    def read_book():
      """    """
      #       
      file1 = open('book1.txt', 'r', encoding='UTF-8')
      lines1 = file1.readlines()
      file1.close()
      for line in lines1:
        line = line.strip() #    
        content = line.split(',')
        book1[content[0]] = content[1]
    
      #      ,       ,   close,     
      with open('book2.txt', 'r', encoding='UTF-8') as file2:
        lines2 = file2.readlines()
      for line in lines2:
        line = line.strip() #    
        content = line.split(',')
        book2[content[0]] = content[1]
    함 수 를 정의 하여 내용 을 합 쳐 저장 합 니 다.관건 은 다음 과 같다.
  • append 는 배열 에 새로운 요 소 를 추가 하 는 데 사 용 됩 니 다
  • dict.keys 함 수 는 모든 key 를 되 돌려 주 는 데 사 용 됩 니 다
  • join 함 수 는 배열 을 문자열 로 변환 하고 해당 하 는 문자 로 분할 하 는 데 사 용 됩 니 다
  • writelines 는 모든 줄 을 파일 에 기록 하 는 데 사 용 됩 니 다
  • with 문법 은 실행 이 끝 날 때 자동 으로 close 하고 자원 을 방출 합 니 다
  • 
    def merge_book():
      """    """
      lines = [] #        
      header = '  \t   \t   
    ' lines.append(header) # for key in book1: line = '' if key in book2.keys(): line = line + '\t'.join([key, book1[key], book2[key]]) line += '
    ' else: line = line + '\t'.join([key, book1[key], ' *****']) line += '
    ' lines.append(line) # 2 , 1 for key in book2: line = '' if key not in book1.keys(): line = line + '\t'.join([key, ' *****', book2[key]]) line += '
    ' lines.append(line) # book3 with open('book3.txt', 'w', encoding='UTF-8') as f: f.writelines(lines)
    전체 호출 은 다음 과 같다.
    
    if __name__ == '__main__':
      #     
      read_book()
      #     
      merge_book()
    
      # print(book1)
      # print(book2)
    마지막 으로 연결 하여 생 성 된 파일 은 다음 과 같 습 니 다.

    상기 두 가지 예 를 통 해 파일 과 디 렉 터 리 작업 의 방법 과 절 차 를 대체적으로 알 수 있다.
    이상 은 Python 이 파일 디 렉 터 리 를 어떻게 조작 하 는 지 에 대한 상세 한 내용 입 니 다.Python 파일 디 렉 터 리 작업 에 관 한 자 료 는 다른 관련 글 에 주목 하 십시오!

    좋은 웹페이지 즐겨찾기