파이썬-day10 (공식 교육)

문자 인코딩

컴퓨터 기초

모든 응용 프로그램은 하드웨어를 작동 할 수있는 운영 체제에서 다음 요청이 운영 체제 발사 시스템에 호출 할 필요가 하드웨어를 운영하고

원리 텍스트 편집기, 파일 액세스

  1. 프로세스를 시작 열립니다 편집기를 열고이 작성하는 편집기로 전원 메모리에 실패, 그래서 내용 후도 메모리 데이터 손실에 저장되어 있다는 것입니다
  2. 영구적으로 저장하려면, 당신은 저장 버튼을 클릭해야합니다 편집기, 오른쪽 메모리 데이터를 하드 디스크 브러시
  3. 우리는 다른 문서의 준비를 사이에 차이가 그것을 쓸 수있는 문자의 단지 무리는하는 평 파일을 (구현되지 않음) 쓰기

평 파일을 실행하는 원리 파이썬 인터프리터

  • 첫 번째 단계 : 파이썬 인터프리터 시작 후 텍스트 편집기에 해당하는 시작
  • 두 번째 단계 : test.py 파일을 열 수있는 텍스트 편집기의 파이썬 인터프리터 해당하는 메모리로 하드 디스크 test.py 파일의 내용 읽기는 (작은 검토 : 해석 결정 pyhon 만 인터프리터 우려 ) 파일 확장자에 대한 상관 없어, 내용을 파일.
  • 세 번째 단계 : 이름 실행될 때 코드의 실제 구현은, 구문, 파이썬 실행 파일 내에서 코드를 인식 할 때이 단계에서, 즉 = "파이썬 인터프리터는 메모리 test.py 코드 (PS에로드 해석 에곤 에곤 ")", 메모리는 문자열을위한 공간을 열 것이다 ".

유사점과 차이점 파이썬 인터프리터 및 텍스트 편집

  • 같은 점 : 파이썬 인터프리터는 텍스트 편집기와 동일합니다 PY 파일 기능을 읽고, 그래서 파이썬 인터프리터는 파일의 내용을 해석됩니다.
  • 다른 점 : 표시하거나 편집하기 위해 텍스트 편집기, 메모리에 파일의 내용은 단순히 파이썬 구문을 무시하지만, 파이썬 인터프리터는하지 파이썬 코드를 작성하려면 당신에게 엿을 제공하기 위해, 메모리에 내용을 파일 것 파이썬 구문을 식별하는 것,하지만 실행 파이썬 코드.

문자 인코딩 소개

컴퓨터는 0과 1을 인식하기 때문에 컴퓨터, 문자 인코딩에 의해 인간의 특성을 이해하는 것이 좋습니다. 인코딩 프로세스의 문자 인코딩입니다 > 번역 프로세스 - -> 디지털 문자

문자 인코딩 분류

UTF-8 (미래 동향)

GBK (중국)

유니 코드 (범용 식별)

SHIFT_JIS (일본)

EUC-KR (한국)

아스키 (미국)

왜곡 분석

첫째, 명확한 개념

  • 하드 디스크 저장 파일 작업을 메모리에서 브러쉬 파일 참조
  • 메모리 동작 읽을 언급 된 하드 디스크의 파일에서 파일 읽기

왜곡 이가지 경우 :

  • 한 왜곡 : 파일이 깨져서 저장되어있는 경우

텍스트 파일 내의 각 나라, 우리가 shiftjis을 유지하기 위해 혼자 있기 때문에 때, 파일을 저장
오류로 인해 스토리지에있는 shiftjis 사이에 통신이 없기 때문에 다른 나라에서 텍스트가 본질적으로. 그러나 편집기 (??? 아직 코딩 오류를 수행의 붕괴와 함께이 소프트웨어의 편집기를) 불평하지 않을 때 우리가 보증금을 주장하지만, 보증금이 저장 열심히 할 수 없다는 의심의 여지가있을 때, 확실히 혼란을 유지 그리고 이미 발생한 단계를 왜곡되는 파일을 저장하고, 우리가 shiftjis 사용하여 파일을 열 때, 일본의 정상 수 있지만 중국어 왜곡이다.

  • 이 왜곡 : 읽지 않는 파일이 깨져서 깨진 파일을 저장

호환성 국가를 보장 UTF-8 인코딩을 사용하는 경우, 파일을 저장하는 것은 깨진 있지만, 이러한 GBK 등의 파일을 읽을 때 잘못된 디코딩 모드를 선택하지 않습니다, 왜곡, 우측의 선거를 해결할 수있는 왜곡 단계를 읽기위한 읽기 단계에서 발생 복호화 방식 확인.

개요

  1. 문자 인코딩을 의미 어떤 기준이 여기에 표준 디코딩 뜻에 따라, 어떤 문자 인코딩 표준에 따라, 법의 핵심의 왜곡이 없는지 확인합니다.
  2. 모든 문자의 메모리에 기록, 동등하게, 그것은 유니 코드 인코딩 우리가 편집기를 엽니 다 같은에 "당신"을 입력, 우리는 "당신이"한자 말할 수 없다, 그것은 많은 수 있습니다 단지 상징이다 국가는 우리가 동일하지 될 수있는 단어 스타일을 사용하는 입력 방식에 따라 사용할 수 있습니다. 우리가 결정하기 위해 하드 디스크 나 네트워크 기반 전송을 저장해야 만 할 때 "당신이"결국 문자, 또는 프로세스의 다른 유니 코드 인코딩 형식으로 변환하는 일본어 단어입니다. 즉, 고정 된 메모리의 사용은 Uncidoe 코딩, 우리가 코딩 할 때 사용하는 하드 디스크에 저장됩니다 변경할 수있는 유일한 것입니다.

파일 작업

세 가지 기본 작업

파일을 엽니 R 모드는 읽을 수 있지만 쓸 수있다

# rt: read by text
# windows的操作系统默认编码为gbk,因此需要使用utf8编码
f = open('32.txt', mode='rt', encoding='utf8')
data = f.read()
print(data)
print(f"type(data): {type(data)}")
f.close()  #文件读完后指针会跑到文件末端,再次读取的将会是空格
aaa
bbb
ccc
nick最帅吗
type(data): <class 'str'>

readline에 () 和의 readlines ()

# f.readline()/f.readlines()
f = open('32.txt', mode='rt', encoding='utf8')
print(f"f.readable(): {f.readable()}")  # 判断文件是否可读
data1 = f.readline()
data2 = f.readlines()
print(f"data1: {data1}")
print(f"data2: {data2}")
f.close()
f.readable(): True
data1: aaa

data2: ['bbb\n', 'ccc\n', 'nick最帅吗']

만 읽을 수 없습니다 쓸 수있는 파일 w 모드를 엽니 다

# wt
f = open('34w.txt', mode='wt', encoding='utf8')
print(f"f.readable(): {f.readable()}")
f.write('nick 真帅呀\n')  # '\n'是换行符
f.write('nick,nick, you drop, I drop.')
f.write('nick 帅的我五体投地')
f.flush()  # 立刻将文件内容从内存刷到硬盘,该模式会先清空文件内的所有内容再写入
f.close()
f.readable(): False

모델의 파일을 열고, 추가 만

# at
f = open('34a.txt', mode='at', encoding='utf8')
print(f"f.readable(): {f.readable()}")
f.write('nick 真帅呀\n')  # '\n'是换行符
f.write('nick,nick, you drop, I drop.')
f.write('nick 帅的我五体投地')
f.close()
f.readable(): False

이진 파일을 열고, B 모드는 오디오 및 사진에 액세스 할 수 있습니다

try:
    import requests

    response = requests.get(
        'http://www.chenyoude.com/Python从入门到放弃/文件的三种打开模式-mv.jpg?x-oss-process=style/watermark')
    data = response.content

    f = open('mv.jpg?x-oss-process=style/watermark', 'wb')
    f.write(data)
    print('done...')
    f.close()
except Exception as e:
    print(e, '报错了,那就算了吧,以后爬虫处会详细介绍')
done...
f = open('34w.txt', 'wb')
f.write('nick 好帅啊'.encode('utf8'))
f.close()

운영 상황과 문서 관리

우리가 파일을 작동의 open () 메서드를 사용하기 전에 열려있는 파일을 열하지만 우리는 수동으로 파일은 운영 체제를 차지 해제해야합니다. 그러나 사실, 우리가 개방 --with 컨텍스트 관리 도구 파이썬를 제공하는 파일을 열려면 더 편리 할 수 ​​있습니다 ().

with open('32.txt', 'rt', encoding='utf8') as f:
    print(f.read())

자위대

오픈 () 메소드는 오퍼레이팅 시스템의 자동 해제를위한 방법을 제공하는 오픈으로 차지 쉼표 일회용 열린 복수의 파일로 분리 될 수없는 전용으로 빠른 파일을 복사.

with open('32.txt', 'rb') as fr, \
        open('35r.txt', 'wb') as fw:
    f.write(f.read())

추천

출처www.cnblogs.com/leaf-wind/p/11316574.html