Python基础:文件操作
1、文件操作步骤
1.1 打开文件
使用open函数,可以打开一个已经存在的文件,或者创建一个新文件。
file是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。
mode:设置打开文件的模式(访问模式):只读,写入,追加等
open(file, mode)
文件打开模式:
- r,以只读方式打开文件,文件的指针将会放在文件的开头,这是默认模式。读取文件时,如果文件路径不存在则会报错。
- rb,以二进制格式打开一个文件用于只读,文件指针会放在文件的开头,这是默认模式
- r+,打开一个文件用于读写,文件指针将会放在文件的开头
- rb+,以二进制格式打开一个文件用于读写,文件指针将会放在文件的开头
- w,打开一个文件只用于写入。如果该文件已经存在则打开文件,并从文件开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
- wb,以二进制格式打开一个文件只用于写入。如果该文件已经存在则打开文件,并从文件开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
- w+,打开一个文件用于读写。如果该文件已经存在则打开文件,并从文件开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
- wb+,以二进制格式打开一个文件用于读写。如果该文件已经存在则打开文件,并从文件开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
- a,打开一个文件用于追加。如果改该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
- ab,以二进制打开一个文件用于追加。如果改该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
- a+,打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开是追加模式。如果该文件不存在,创建新文件进行写入。
- ab,以二进制打开一个文件用于读写。如果改该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件进行写入
示例:
f = open('test.txt', 'w', encoding='utf-8')
注意:此时的f是open函数的文件对象。第三个参数encoding表示操作文件时使用的编码格式,注意这里要和文件本身的编码格式一致,否则就会乱码。
1.2 文件读写
写
f = open('test.txt','w') # 1.打开文件 f.write('hello world') # 2.文件写入 f.close() # 3.关闭文件
读
- read()
文件对象.read(num),num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据
- readlines()
可以按照行的方式吧整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素
读取所有行,结果是列表 ['小红eeeeeeee\n', '第二阿红\n', '第三行eeeeeeee']
- readline()
一次读取一行内容,读取行,光标会发生变化,挪到下一行
1.3 关闭文件
文件对象.close()
2、读写文件的另外一种写法(常用)
Python引入了with语句来自动帮我们调用close()方法。
with open() as写文件:
with open('test.txt','w') as f: f.write('Hello, python!')
with open() as 读文件:
with open('test.txt','r') as f : print(f.read())
3、动态的获取文件的绝对路径
读写文件的时候需要用到文件路径。python的os模块提供函数可以获取到当前文件的绝对路径,从而定位到目标文件。
os.path 模块主要用于获取文件的属性
os.path.abspath(path) # 返回绝对路径 os.path.abspath(__file__) # 得到当前文件的绝对路径 os.path.dirname(path) # 返回文件路径 os.path.dirname(__file__) # 得到当前文件所在目录 os.path.join(path1,path2) # 把目录和文件名合成一个路径 os.path.join('/test/','tttttttt.txt') os.path.exists('eeeee.txt') # 判断当前路径是否存在