python 학습카드 8.8
1. 파일 및 파일 시스템
# 파일 열기
open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
Open file and return a stream. Raise OSError upon failure. file: 필수, 파일 경로 (상대적 또는 절대 경로).mode: 선택할 수 있습니다. 파일 열기 모드buffering: 버퍼 인코딩 설정: 일반적으로utf8 errors: 오류 단계 newline: 줄 바꾸기 기호를 구분하는 흔한 모드는 다음과 같습니다열기 모드
작업 수행
‘r’
읽기 전용으로 파일을 엽니다.파일의 포인터는 파일의 시작 부분에 놓입니다.기본 모드입니다.
‘w’
쓰기 전용으로 파일을 엽니다.파일이 이미 있으면 파일을 열고 처음부터 편집합니다.기존 컨텐트가 삭제됩니다.파일이 없으면 새 파일을 만듭니다.
‘x’
쓰기 모드, 새 파일이 존재하면 오류가 발생합니다.
‘a’
추가 모드, 추가에 사용할 파일을 엽니다.파일이 이미 존재하면 파일 포인터가 파일의 끝에 놓입니다.즉, 새로운 내용은 기존 내용에 기록될 것이다.이 파일이 존재하지 않으면 쓰기 위해 새 파일을 만듭니다.
‘b’
바이너리 모드로 파일을 엽니다.일반적으로 그림과 같은 비텍스트 파일에 사용됩니다.
‘t’
텍스트 모드로 열기(기본값).일반적으로 텍스트 파일에 사용됩니다(예: txt.
‘+’
읽기 및 쓰기 가능 모드(다른 모드에 추가 가능)
파일 객체 및 방법
만약 파일 열기 모드가 b를 가지고 있다면, 파일 내용을 쓸 때str(인자)는encode 방법으로bytes 형식으로 바꾸어야 합니다. 그렇지 않으면 오류가 발생합니다. TypeError: a bytes-like object is required, not'str'입니다.
간결한 with 문장
키워드 with 문장은 파일 같은 대상이 사용한 후에 반드시 그 정리 방법을 정확하게 집행할 수 있도록 보장할 수 있다.
try:
f = open('myfile.txt', 'w')
for line in f:
print(line)
except OSError as error:
print(' !%s' % str(error))
finally:
f.close()
# !not readable
OS 모듈에서 파일/디렉토리에 자주 사용되는 함수
import os
path = 'C:\\'
print(" : %s" % os.getcwd())
# : C:\Users\Administrator\PycharmProjects\untitled1
os.chdir(path)
print(" : %s" % os.getcwd())
# : C:\
서열화와 반서열화
Python의pickle 모듈은 기본적인 데이터 시퀀스와 반서열화를 실현했다.
pickle 모듈의 서열화 작업을 통해 프로그램에서 실행되는 대상 정보를 파일에 저장하고 영구적으로 저장할 수 있습니다.pickle 모듈의 반서열화 작업을 통해 우리는 파일에서 이전 프로그램에 저장된 대상을 만들 수 있습니다.pickle 모듈에서 가장 자주 사용하는 함수는 다음과 같습니다.
pickle.dump (obj,file,[,protocol]) 는 열려 있는 파일에 obj 대상을 서열화합니다.
obj: 서열화된 obj 대상을 원합니다.file: 파일 이름입니다.프로토콜: 서열화된 프로토콜입니다.이 항목이 생략되면 기본값은 0입니다.음수 또는 HIGHEST인 경우 _PROTOCOL은 가장 높은 프로토콜 버전을 사용합니다.pickle.load (file) 는 파일의 대상을 정렬하여 읽습니다.
file: 파일 이름입니다.import pickle
dataList = [[1, 1, 'yes'],
[1, 1, 'yes'],
[1, 0, 'no'],
[0, 1, 'no'],
[0, 1, 'no']]
dataDic = {
0: [1, 2, 3, 4],
1: ('a', 'b'),
2: {
'c': 'yes', 'd': 'no'}}
# dump()
fw = open(r'.\dataFile.pkl', 'wb')
# Pickle the list using the highest protocol available.
pickle.dump(dataList, fw, -1)
# Pickle dictionary using protocol 0.
pickle.dump(dataDic, fw)
fw.close()
# load()
fr = open('dataFile.pkl', 'rb')
data1 = pickle.load(fr)
print(data1)
data2 = pickle.load(fr)
print(data2)
fr.close()
# [[1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'], [0, 1, 'no']]
# {0: [1, 2, 3, 4], 1: ('a', 'b'), 2: {'c': 'yes', 'd': 'no'}}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
import pickle
dataList = [[1, 1, 'yes'],
[1, 1, 'yes'],
[1, 0, 'no'],
[0, 1, 'no'],
[0, 1, 'no']]
dataDic = {
0: [1, 2, 3, 4],
1: ('a', 'b'),
2: {
'c': 'yes', 'd': 'no'}}
# dump()
fw = open(r'.\dataFile.pkl', 'wb')
# Pickle the list using the highest protocol available.
pickle.dump(dataList, fw, -1)
# Pickle dictionary using protocol 0.
pickle.dump(dataDic, fw)
fw.close()
# load()
fr = open('dataFile.pkl', 'rb')
data1 = pickle.load(fr)
print(data1)
data2 = pickle.load(fr)
print(data2)
fr.close()
# [[1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'], [0, 1, 'no']]
# {0: [1, 2, 3, 4], 1: ('a', 'b'), 2: {'c': 'yes', 'd': 'no'}}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.