python文件操作

文件

基本文件操作

什么是文件

文件是存储在辅助存储器上的数据序列,可以包含任何数据内容。

文件有两种类型:文本文件和二进制文件

打开文件和关闭文件

文件的相对路径和绝对路径

绝对路径

就是真实的路径,是计算机中完整路径,必须准确,否则不能找到,起点是系统的根目录,也就是各个盘符

例如:C:/Users/123/Desktop/python

相对路径

文件相对于当前工作目录的路径(.\表示当前目录,…\表示当前目录的父目录)

通过os包处理路径:

  • os.path.abspath(path)返回path参数的绝对路径的字符串(相对路径转绝对路径)
  • os.path.isabs(path)如果参数是一个绝对路径,返回True,否则返回else
  • os.path.relpath(path, start)返回从start路径到path的相对路径的字符串,如果不提供start,将当前工作目录视为开始路径
  • os.path.diename(path)返回一个字符串,包含path参数最后一个斜杠之前的所有内容
  • os.path.basename(paht)返回一个字符串,包含path参数最后一个斜杠之前的所有内容
os.path.abspath('.')  #'D:\\Environment\\python'
os.path.isabs(os.getcwd()) #True
os.path.relpath('D:\\Environment\\python',"D:\Code") #'..\\Environment\\python'
path = 'D:\\Environment\\python'
os.path.basename(path)#'python'
os.path.dirname(path)#'D:\\Environment'

文件基本操作

open()打开文件

python中使用open函数打开文件,open的语法如下:
<变量名> = open(<文件名>, <打开模式>, <编码类型>)

第三个编码类型可以不写,默认utf-8,第二个打开模式不写默认以只读方式打开。

文件的打开模式如下:

模式描述
t文本模式 (默认)。
x写模式,新建一个文件,如果该文件已存在则会报错。
b二进制模式。
+打开一个文件进行更新(可读可写)。
U通用换行模式(不推荐)。
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
close()关闭文件

使用close关闭文件,语法如下:

<变量名>.close

实例

f = open("test.txt", "r") #使用相对路径
print(f.read())  #读取文本文件
f.close()  #关闭文件

文件的读写

读文件
方法描述
.readall()读取整个文件内容,返回一个字符串或者字节流
.read(size=-1)从文件中读取整个文件内容,如果给定参数,读取前size个字节的字符串或字节流
.readline(size=-1)从文件中读取一行内容,如果给定参数,读取前size个字节的字符串或字节流
.readlines(hint=-1)从文件中读取所有行,如果给定参数,读取前hint行
f = open("test.txt", "r+", encoding="utf-8") #用r+方式打开,可读可写
print("read:", f.read())
f.seek(0)  #将文件指针移动到文件开头
print("readline:", f.readline())
f.seek(0)  #将文件指针移动到文件开头
print("readlines:", f.readlines())
f.close()   #将文件指针移动到文件开头
#结果:
read: hello
北京
上海
广州
深圳
readline: hello

readlines: ['hello\n', '北京\n', '上海\n', '广州\n', '深圳']

这里每读一次文件之后要将文件指针移动到开头,以方便下次读文件,关于文件指针后面会有。

写文件
方法描述
.write(s)向文件写入一个字符串或字节流
.writelines(lines)将一个元素全为字符串的列表写入文件
f = open("test.txt", "w+", encoding="utf-8")  #以w+形式打开文件。原文件内容会被清空
f.write("chongqing")
f.write('\n')     #写入一个换行
s = ["A", "B", "C"]
f.writelines(s)
f.close()
#test文件内容:
chongqing
ABC

容会被清空
f.write(“chongqing”)
f.write(’\n’) #写入一个换行
s = [“A”, “B”, “C”]
f.writelines(s)
f.close()
#test文件内容:
chongqing
ABC


  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值