이 글은 주로 Python 파일 작업에 대한 자세한 설명과 예제를 소개합니다. 이 글을 통해 모든 사람이 Python 파일 작업에 대한 지식을 이해하고 숙달할 수 있기를 바랍니다. 작업
1. 파일 작업
1. 파일 작업 프로세스
파일을 열고 파일 핸들을 가져와 변수에 할당- 핸들을 통해 파일 작업
- 닫기 the file
-
기존 파일은 다음과 같습니다.
昨夜寒蛩不住鸣。 惊回千里梦,已三更。 起来独自绕阶行。 人悄悄,帘外月胧明。 白首为功名,旧山松竹老,阻归程。 欲将心事付瑶琴。 知音少,弦断有谁听。 f = open('小重山') #打开文件 data=f.read()#获取文件内容 f.close() #关闭文件
참고: win의 경우 hello 파일이 utf8에 저장되어 파일을 열 때 open 기능이 운영 체제를 통해 파일을 엽니다. , win 운영 체제의 기본값은 gbk 인코딩이므로 직접 열면 코드가 깨집니다. f=open('hello', 인코딩='utf8')이 필요합니다. 직접 열 수 있습니다.
2. 파일 열기 모드
문자 의미
'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\n') # f.write('白了少年头2\n') # 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 \n') # 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\n') # f.write('白了少年头2\n') # 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,岳飞\n') # # else: # f_write.write(line) # another way: # if count==3: # # line='hello,岳飞2\n' # 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+ 모드에서는 동일 바이트 교체를 수행할 수 있지만 의미가 없습니다!
이 아이디어에는 큰 문제가 있습니다. 데이터가 너무 크면 메모리가 이를 감당할 수 없습니다. 그러나 우리의 방법은 반복자를 통해 이 프로세스를 최적화할 수 있습니다.式 보충: PY2의 RB 모드 및 SEEK
: PY3의
#昨夜寒蛩不住鸣. 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) # 鸣E
:
# 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的时候仔显示地去解码.E
4, 문
을 사용하여 컨텍스트를 관리하면 다음과 같습니다.
rreee 이렇게 하면 with code 블록이 실행되면 파일 리소스가 자동으로 닫히고 내부적으로 해제됩니다.
Python 2.7 이후에는 동시에 여러 파일의 컨텍스트 관리를 지원합니다. 즉:
with open('log','r') as f: pass
위 내용은 Python 파일 작업에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Python List 슬라이싱의 기본 구문은 목록 [start : stop : step]입니다. 1. Start는 첫 번째 요소 인덱스, 2.Stop은 첫 번째 요소 인덱스가 제외되고 3. Step은 요소 사이의 단계 크기를 결정합니다. 슬라이스는 데이터를 추출하는 데 사용될뿐만 아니라 목록을 수정하고 반전시키는 데 사용됩니다.

ListSoutPerformArraysin : 1) DynamicsizingandFrequentInsertions/Deletions, 2) StoringHeterogeneousData 및 3) MemoryEfficiencyForsParsEdata, butMayHavesLightPerformanceCosceperationOperations.

TOCONVERTAPYTHONARRAYTOALIST, USETHELIST () CONSTUCTORORAGENERATERATOREXPRESSION.1) importTheArrayModuleAndCreateAnarray.2) USELIST (ARR) 또는 [XFORXINARR] TOCONVERTITTOALIST.

chooSearRaysOverListSinpyTonforBetTerferformanceAndMemoryEfficiencyInspecificscenarios.1) arrgenumericalDatasets : arraysreducememoryUsage.2) Performance-CriticalOperations : ArraysofferspeedboostsfortaskslikeApenorsearching.3) TypeSenforc

파이썬에서는 루프에 사용하여 열거 및 추적 목록에 대한 이해를 나열 할 수 있습니다. Java에서는 루프를 위해 전통적인 사용 및 루프가 트래버스 어레이를 향해 향상시킬 수 있습니다. 1. Python 목록 트래버스 방법에는 다음이 포함됩니다. 루프, 열거 및 목록 이해력. 2. Java 어레이 트래버스 방법에는 다음이 포함됩니다. 루프 용 전통 및 루프를위한 향상.

이 기사는 버전 3.10에 도입 된 Python의 새로운 "매치"진술에 대해 논의하며, 이는 다른 언어로 된 문장과 동등한 역할을합니다. 코드 가독성을 향상시키고 기존 IF-ELIF-EL보다 성능 이점을 제공합니다.

Python 3.11의 예외 그룹은 여러 예외를 동시에 처리하여 동시 시나리오 및 복잡한 작업에서 오류 관리를 향상시킵니다.

Python의 기능 주석은 유형 확인, 문서 및 IDE 지원에 대한 기능에 메타 데이터를 추가합니다. 코드 가독성, 유지 보수를 향상 시키며 API 개발, 데이터 과학 및 라이브러리 생성에 중요합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
