Python文件操作

这篇博客详细介绍了Python中文件操作的基本流程、读写追加等模式,包括r、rb、w、wb、a、ab等模式的用法,以及read、readline、readlines、seek、tell等文件操作方法。此外,还讨论了文件的其他模式,如r+、w+、a+,以及文件的修改方式和注意事项。
摘要由CSDN通过智能技术生成

一、文件操作基本流程

操作文件3要素

文件路径:D:\abc.txt (你想操作这个文件,必须要知道这个文件的位置,路径尽量要简单一些,短一些)
编码方式:utf-8,gbk,gb2312… (文件其实就是数据的存储,数据存储你需要知道这个数据是以什么编码存储的)
操作模式:只读,只写,追加,写读,读…

文件操作的内容流程:

计算机系统分为:计算机硬件,操作系统,应用程序三部分。

我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的,这就用到了操作系统。操作系统把复杂的硬件操作封装成简单的接口给用户/应用程序使用,其中文件就是操作系统提供给应用程序来操作硬盘虚拟概念,用户或应用程序通过操作文件,可以将自己的数据永久保存下来。

使用notepad++创建一个abc文件并保存至D盘,添加内容:666666666666666666
然后在PyCharm中创建一个py文件,利用Python代码打开这个文件

f = open(r'D:\abc',mode='r',encoding='utf-8')
content = f.read()
print(content)
f.close() #666666666666666666

上面代码的解释:
f: 就是一个变量,一般都会将它写成f,f_obj,file,f_handler,fh,等,它被称作文件句柄。
open:是Python调用的操作系统(windows,linux,等)的功能。
第一个r:是将斜杠\进行转义,让\仅仅只表示\,没有其他特殊的含义
扩展:
    1.绝对路径:从磁盘根目录开始一直到文件名
  2.相对路径:用一个文件夹下的文件,相对于当前这个程序所在的文件而言.如果在同一个文件中,则相对路劲就是这个文件名.如果再上一层文件夹则要使用../相对路径下,你就可以直接写文件名即可。
'D:\abc': 这个是文件的路径。
mode: 就是定义你的操作方式:r为读模式。
encoding: 不是具体的编码或者解码,他就是声明:此次打开文件使用什么编码。一般来说:你的文件用什么编码保存的,就用什么方法打开,一般都是用utf-8(有些使用的是gbk)。
f.read(): 你想操作文件,比如读文件,给文件写内容,等等,都必须通过文件句柄进行操作。
close(): 关闭文件句柄(可以把文件句柄理解成一个空间,这个空间存在内存中,必须要主动关闭)。

文件操作3步骤:

#1. 打开文件,得到文件句柄并赋值给一个变量
f = open(r'D:\abc',mode='r',encoding='utf-8')  # 默认打开模式就为r

#2. 通过句柄对文件进行操作
content = f.read()

#3. 关闭文件
f.close()

二、文件操作

2.1 读操作

2.1.1 r 模式

以只读方式打开文件,文件的指针将会放在文件的开头。是文件操作最常用的模式,也是默认模式,如果一个文件不设置mode,那么默认使用r模式操作文件。

不同的读文件的方法
1)read()
  read()将文件中的内容全部读取出来
缺点:
  如果文件很大就会非常的占用内存,容易导致内存奔溃.

f = open(r'D:\abc',mode='r',encoding='utf-8')
content = f.read()
print(content)
f.close()

# result:
文件操作r模式的不同方法:
read()
readline()
readlines()
for循环
  1. read(n)
      read()读取的时候指定读取到什么位置,在r模式下,n按照字符读取
f = open(r'D:\abc',mode='r',encoding='utf-8')
content = f.read(7)
print(content)
f.close()

# result:
文件操作r模式
  1. readline()
      readline()读取每次只读取一行
      注意点:readline()读取出来的数据在后面都有一个\n
f = open(r'D:\abc',mode='r',encoding='utf-8')
content1 = f.readline()
content2 = f.readline()
content3 = f.readline()
content4 = f.readline()
print(content1)
print(content2)
print(content3)
print(content4)
f.close()

# result:
文件操作r模式的不同方法:

read()

readline()

readlines()

解决这个问题只需要在我们读取出来的文件后边加一个strip()就OK了

f = open(r'D:\abc',mode='r',encoding='utf-8')
content1 = f.readline()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值