Python 파일 작업 에 대한 상세 한 설명 및 인 스 턴 스
파일 작업
1.파일 작업 절차
。
, 。
。
, 。
, , 。
。
, 。
f = open(' ') #
data=f.read()#
f.close() #
메모:if in the win,hello 파일 은 utf 8 로 저 장 됩 니 다.파일 을 열 때 open 함 수 는 운영 체제 로 열 린 파일 입 니 다.win 운영 체 제 는 기본적으로 gbk 인 코딩 이기 때문에 직접 열 면 어 지 럽 습 니 다.f=open('hello',encoding='utf 8')이 필요 합 니 다.hello 파일 은 gbk 로 저 장 된 것 이 라면 직접 열 면 됩 니 다.2.파일 열기 모드
Character Meaning
'r' open for reading (default)
'w' open for writing, truncating the file first
'x' create a new file and open it for writing
'a' open for writing, appending to the end of the file if it exists
'b' binary mode
't' text mode (default)
'+' open a disk file for updating (reading and writing)
'U' universal newline mode (deprecated)
먼저 세 가지 가장 기본 적 인 모델 을 소개 한다.
# f = open(' 2','w') #
# f = open(' 2','a') #
# f.write(' 1
')
# f.write(' 2
')
# f.write(' !3')
3.문서 의 구체 적 인 조작
f = open(' ') #
# data1=f.read()#
# data2=f.read()#
#
# print(data1)
# print('...',data2)
# data=f.read(5)#
# data=f.readline()
# data=f.readline()
# print(f.__iter__().__next__())
# for i in range(5):
# print(f.readline())
# data=f.readlines()
# for line in f.readlines():
# print(line)
# : , 3 :'end 3'
# for index,line in enumerate(f.readlines()):
# if index==2:
# line=''.join([line.strip(),'end 3'])
# print(line.strip())
# :
# count=0
# for line in f:
# if count==3:
# line=''.join([line.strip(),'end 3'])
# print(line.strip())
# count+=1
# print(f.tell())
# print(f.readline())
# print(f.tell())#tell , , read() .
# print(f.read(5))#
# print(f.tell())
# f.seek(0)
# print(f.read(6))#read , ,read(6), 6
#terminal :
f = open(' 2','w')
# f.write('hello
')
# f.flush()
# f.write('world')
# :
# import time,sys
# for i in range(30):
# sys.stdout.write("*")
# # sys.stdout.flush()
# time.sleep(0.1)
# f = open(' 2','w')
# f.truncate()#
# f.truncate(5)#
# print(f.isatty())
# print(f.seekable())
# print(f.readable())
f.close() #
다음 에 우 리 는 파일 모드 를 계속 확장 합 니 다:
# f = open(' 2','w') #
# f = open(' 2','a') #
# f.write(' 1
')
# f.write(' 2
')
# f.write(' !3')
# f.close()
#r+,w+
# f = open(' 2','r+') #
# print(f.read(5))#
# f.write('hello')
# print('------')
# print(f.read())
# f = open(' 2','w+') #
# print(f.read(5))# ,
# f.write('hello alex')
# print(f.read())# read
# f.seek(0)
# print(f.read())
#w+ a+
# ok, , :'hello !'
# , ? , print, !!!
# f = open(' 2','r+') #
# f.readline()
# f.readline()
# f.readline()
# print(f.tell())
# f.write('hello ')
# f.close()
# , ! ?
# f_read = open(' ','r') #
# f_write = open(' _back','w') #
# count=0
# for line in f_read:
# if count==3:
# f_write.write('hello,
')
#
# else:
# f_write.write(line)
# another way:
# if count==3:
#
# line='hello, 2
'
# f_write.write(line)
# count+=1
# #
# f = open(' 2','wb') #
# # f = open(' 2','wb') #
# f.write('hello alvin!'.encode())#b'hello alvin!' , , 010101
주의 1:py2 든 py3 든 r+모드 에서 같은 바이트 로 바 꿀 수 있 지만 의미 가 없습니다! 주의 2:어떤 학생 은 여기 서 readlines 로 내용 목록 을 얻 은 다음 에 색인 을 통 해 해당 내용 을 수정 하고 마지막 으로 목록 을 다시 작성 합 니 다.
이런 사고방식 에는 매우 큰 문제 가 하나 있다.데이터 가 매우 크 면 너의 메모 리 는 참 을 수 없 을 것 이 고,우리 의 방식 은 교체 기 를 통 해 이 과정 을 최적화 할 수 있다.
rb 모드 및 seek
py2 에서:
# .
f = open('test','r',) #
f.read(3)
# f.seek(3)
# print f.read(3) #
# f.seek(3,1)
# print f.read(3) #
# f.seek(-4,2)
# print f.read(3) #
py3 에서:
# test:
.
f = open('test','rb',) #
f.read(3)
# f.seek(3)
# print(f.read(3)) # b'\xe5\xa4\x9c'
# f.seek(3,1)
# print(f.read(3)) # b'\xe5\xaf\x92'
# f.seek(-4,2)
# print(f.read(3)) # b'\xe9\xb8\xa3'
# : py3 , , , r , f.read decode
# unicode ; , , , decode
# bytes , rb .
# py3 , bytes unicode, seek , py2 py3 seek,
# py3 f rb, .
# : rb , decode .
4.with 구문파일 을 열 고 닫 는 것 을 잊 지 않도록 컨 텍스트 를 관리 할 수 있 습 니 다.즉,:
with open('log','r') as f:
pass
이러한 방식 으로 with 코드 블록 이 실 행 될 때 내부 에서 파일 자원 을 자동 으로 닫 고 방출 합 니 다.Python 2.7 이후 with 는 여러 파일 의 컨 텍스트 를 동시에 관리 하 는 것 을 지원 합 니 다.즉,:
with open('log1') as obj1, open('log2') as obj2:
pass2
궁금 한 점 이 있 으 시 면 메 시 지 를 남기 거나 본 사이트 의 커 뮤 니 티 에 가서 토론 을 교류 하 세 요.읽 어 주 셔 서 감사합니다. 도움 이 되 셨 으 면 좋 겠 습 니 다.본 사이트 에 대한 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.