파 이 썬 은 파일 디 렉 터 리 를 어떻게 조작 합 니까?
6061 단어 Python파일 디 렉 터 리조작 하 다.
I/O 작업 은 화면 입 출력 뿐만 아니 라 파일 의 읽 기와 쓰기 도 포함 합 니 다.Python 은 필요 한 방법 과 기능 을 많이 제공 하여 파일 과 폴 더 에 관 한 작업 을 합 니 다.본 고 는 주로 두 가지 간단 한 예 를 통 해 Python 이 폴 더 와 파일 에서 의 응용 을 약술 하고 학습 공유 에 만 사용 할 수 있 으 며 부족 한 점 이 있 으 면 지적 해 주 십시오.
지식 에 관련되다
os 모듈:os 모듈 은 파일 과 디 렉 터 리 를 처리 하 는 데 매우 풍부 한 방법 을 제공 합 니 다.
open 방법:open 방법 은 파일 을 열 어서 읽 기와 쓰기 에 사용 합 니 다.
인 스 턴 스 1:지정 한 디 렉 터 리 에 있 는 모든 파일 크기 를 가 져 오고 최대 파일 과 최소 파일 을 찾 습 니 다.
분해 단계:
폴 더 아래 의 모든 하위 파일 과 하위 폴 더 를 옮 겨 다 니 며 모든 파일 의 크기 를 계산 합 니 다.
모든 파일 의 크기 합 계 를 계산 합 니 다.
최대 파일 및 최소 파일 찾기
핵심 코드
방법 정의 getfile_size,단일 파일 을 가 져 오 는 크기,단 위 는 KB 와 MB 두 가지 입 니 다.관건 은 다음 과 같다.
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,지정 한 파일 디 렉 터 리 를 옮 겨 다 니 며 사전 에 저장 합 니 다.관건 은 다음 과 같다.
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 의 이름 을 되 돌려 줍 니 다.관건 은 다음 과 같다.
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북,두 파일 의 내용 을 읽 는 데 사 용 됩 니 다.관건 은 다음 과 같다.
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]
함 수 를 정의 하여 내용 을 합 쳐 저장 합 니 다.관건 은 다음 과 같다.
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 파일 디 렉 터 리 작업 에 관 한 자 료 는 다른 관련 글 에 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.