이 기사는 Python의 파일 작업에 대한 관련 내용을 예제와 함께 요약한 것입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
1. 파일 작업 소개
파일 작업에 있어서는 모두 스트림을 통해 수행된다고 생각합니다. 스트림. 파이썬에서 파일의 연산은 매우 간단합니다. 다양한 스트림 연산을 갖는 Java와 같은 다른 언어와 달리, open 함수를 직접 사용하여 파일을 연 다음, 여는 방식에 따라 다양한 연산을 수행할 수 있습니다. , 수행할 수 있는 작업도 다릅니다. 파일을 여는 방법은 다음과 같습니다. w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b 등
먼저 파일 읽기 작업을 살펴보겠습니다.
In [2]: f = open(file='a.txt', mode='r', encoding='utf-8') In [3]: f.read() Out[3]: '每天坚持一点,\n每天努力一点,\n每天多思考一点,\n慢慢你会发现,\n你的进步越来越大\n' In [4]:
open 함수를 사용하여 파일을 열고 파일 객체를 반환합니다(필수). 작업의 파일 이름), 모드(열 모드) 및 인코딩(파일을 읽을 인코딩 지정)은 모드에 따라 반환된 파일에 다양한 작업이 수행됩니다. 파일에 대한 몇 가지 작업을 살펴보겠습니다.
2. 여러 가지 파일 작업 방법
(1) 읽기 전용 작업
읽기 전용 작업 only 모드를 r로 지정해야 합니다:
In [5]: f = open(file='a.txt', mode='r', encoding='utf-8') In [6]: f.read() Out[6]: '每天坚持一点,\n每天努力一点,\n每天多思考一点,\n慢慢你会发现,\n你的进步越来越大\n' In [7]: f.readable() # 判断文件是否可读 Out[7]: True In [8]: f.writable() # 判断文件是否可写 Out[8]: False # 此处是以只读模式打开的文件,所以返回False不可写 In [9]: f1 = open(file='单分支结构.eddx', mode='rb') # 使用‘rb’可以打开存储为二进制的数据,图片、视频等 In [10]: f1.read(20) Out[10]: b'PK\x03\x04\x14\x00\x08\x00\x08\x00mN\xe3H\xa9\x95\xb3\x9eW\x01'
(2) 쓰기 전용 작업
mode='w'
In [13]: f = open(file='a.txt', mode='w', encoding='utf-8') In [14]: f.read() # 此时尝试读取文件会报错 --------------------------------------------------------------------------- UnsupportedOperation Traceback (most recent call last) <ipython-input-14-571e9fb02258> in <module> ----> 1 f.read() UnsupportedOperation: not readable In [15]: f.write('葫芦娃') Out[15]: 3 In [16]: f.close() In [17]: !cat a.txt # 此时查看文件之前那的内容已经被覆盖了 葫芦娃 In [18]:
Use mode= 'w '파일을 조작할 때 파일을 열면 먼저 파일이 지워지고, 그 다음 조작에 따라 내용이 파일에 기록됩니다.
# 🎜🎜#In [18]: f = open(file='a.txt', mode='a', encoding='utf-8') In [19]: f.write('每天坚持一点,\n每天努力一点,\n每天多思考一点,\n慢慢你会发现,\n你的进步越来越大\n') Out[19]: 42 In [20]: f.close() In [21]: In [21]: !cat a.txt 葫芦娃每天坚持一点, 每天努力一点, 每天多思考一点, 慢慢你会发现, 你的进步越来越大 In [22]:
추가 모드 작업:
파일을 열 때 파일이 없으면 먼저 생성됩니다#🎜 🎜#
은 커서가 어디에 있든 항상 파일 끝에
을 씁니다.열린 파일은 #Mode는 읽기 및 쓰기가 가능한 향상된 읽기 작업입니다. In [22]: f = open(file='a.txt', mode='r+', encoding='utf-8')
In [23]: f.readable()
Out[23]: True
In [24]: f.writable()
Out[24]: True
In [25]: f.read()
Out[25]: '葫芦娃每天坚持一点,\n每天努力一点,\n每天多思考一点,\n慢慢你会发现,\n你的进步越来越大\n'
In [26]: f.write('\n哈哈哈哈哈哈哈')
Out[26]: 8
In [27]: f.close()
In [28]: !cat a.txt # 查看写入的文件并没有异常
葫芦娃每天坚持一点,
每天努力一点,
每天多思考一点,
慢慢你会发现,
你的进步越来越大
哈哈哈哈哈哈哈
In [29]: f = open(file='a.txt', mode='r+', encoding='utf-8')
In [30]: f.seek(0, 2) # seek可以调整光标位置
Out[30]: 153
In [31]: f.write('你的进步越来越大')
Out[31]: 8
In [32]: f.read() # 先写后读会读出空字符
Out[32]: ''
In [33]:
r+
w+: 향상된 w 모드 , 쓰기 및 읽기 작업이 가능하지만 r+와 동일합니다. 먼저 읽고 쓴 다음 함정이 있으며 파일을 열 때마다 파일이 먼저 지워지기 때문에 사용 시나리오가 적습니다.
#🎜🎜 #
a+: 향상된 a 모드에서는 읽기 및 쓰기 작업도 수행할 수 있지만, 파일 끝에만 쓸 수 있습니다.어떻게든. 커서가 움직이면 파일끝까지만 쓸 수 있습니다.
3. 🎜🎜#
(1) 파일 읽기 및 쓰기파일 쓰기
: 주로 write 방식과 writelines 방식write 메서드: 문자열을 직접 작성합니다.
파일 읽기
:read 메서드: read 메서드 한 번에 읽는 문자 수를 나타내는 int 유형 매개변수를 받습니다(탐색 단위는 바이트). 제공되지 않으면 기본값은 #🎜 파일의 모든 내용을 읽는 것입니다. 🎜#
readline 방법: 파일의 한 줄을 읽는 방법은 파일이 매우 클 때 매우 유용합니다. 목록을 나열하고 목록을 반환합니다
In [34]: f = open(file='a.txt', mode='r', encoding='utf-8') # 葫芦娃每天坚持一点, # 每天努力一点, # 每天多思考一点, # 慢慢你会发现, # 你的进步越来越大 # 哈哈哈哈哈哈哈你的进步越来越大 In [35]: f.read(10) # 这里时一次读取10个字符 Out[35]: '葫芦娃每天坚持一点,' In [36]: f.readline() Out[36]: '\n' In [37]: f.readline() # 每次读取一行 Out[37]: '每天努力一点,\n' In [38]: f.readlines() # 返回的是一个列表 Out[38]: ['每天多思考一点,\n', '慢慢你会发现,\n', '你的进步越来越大\n', '\n', '哈哈哈哈哈哈哈你的进步越来越大'] In [39]:
readline(파일 핸들)과 readline의 차이점
readlines 반환된 결과는 목록이며 전체 파일의 내용은 다음과 같습니다. 한 번에 읽기 목록을 반환하면 대용량 파일을 처리할 때 리소스가 많이 소모됩니다 루프를 사용하여 파일 핸들을 순회하고 파일 내용을 출력할 수도 있습니다. #🎜 🎜#
In [39]: f.seek(0) Out[39]: 0 In [40]: for line in f: ...: print(line.strip()) 葫芦娃每天坚持一点, 每天努力一点, 每天多思考一点, 慢慢你会发现, 你的进步越来越大 哈哈哈哈哈哈哈你的进步越来越大 In [41]:
#🎜 🎜#읽기 가능: 파일을 읽을 수 있는지 확인#🎜 🎜#
seekable:判断当前文件的光标是否可移动
tell:返回当前光标所在的位置
truncate:截断数据(谨慎操作),默认截断光标后所有字符
writable:判断文件是否可写
(3)打开文件的另一种方式
在打开一个文件后,要记得在文件使用结束狗使用close方法关闭文件句柄,但有时在中间进行大量的操作后可能会忘了关闭,下面介绍的这种方法可以不用自己手动关闭文件了,他会在您操作解说后(代码块的语句执行完毕)自动关闭文件句柄,这种方法就是使用context上下文管理,使用with语句实现:
In [43]: with open('a.txt', mode='r', encoding='utf-8') as f: # 使用with管理上下文,最后退出时会自己执行close动作 ...: for line in f: ...: print(line.strip()) 葫芦娃每天坚持一点, 每天努力一点, 每天多思考一点, 慢慢你会发现, 你的进步越来越大 哈哈哈哈哈哈哈你的进步越来越大
위 내용은 Python의 파일 작업 관련 내용 요약(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!