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')    # 判断当前路径是否存在

 

posted @ 2023-03-17 14:55  阳光倾林  阅读(502)  评论(0编辑  收藏  举报