文件类型

 (1)二进制文件

        存储普通的“字符”文本,默认使用u'nicode字符集,可以使用记事本打开

 (2)二进制文件

        将数据使用“字节”进行存储,无法使用记事本打开,必须使用专用软件打开

        如:MP3音频文件、图片、doc文件等

打开模式

描述

r

只读模式打开,打开后文件指针在文件开头位置

w

写入模式打开,如果文件不存在则创建,文件存在则覆盖原有内容,打开后文件指针在文件开头

a

追加模式打开,如果文件不存在则创建文件,此时指针会在文件开头,如果文件存在,则在文件末尾追加内容,文件指针在文件末尾

b

二进制模式打开,不能单独使用,与其他模式一起使用,rb或者wb

+

读写方式打开 ,不能单独使用,与其他模式一起使用,a+

os模块

os模块是python内置的与操作系统功能和文件系统相关的模块,执行结果与操作系统有 关,结果可能存在差异。

(1)打开文件、写入内容、关闭文件

# import os # 这是内置的,一般情况下不用再import
s = '这里是新输入的内容!'
file = open('filename.txt','a',encoding='UTF-8')
file.write(s)
file.close()

 (2)获取当前工作目录

# os.getcwd()获取当前文件工作目录
print(os.getcwd())

 (3) 创建目录

# 创建目录 mkdir(path[,mode])
os.mkdir('D:\\Pystudy\\base_exercise\\base_exercise2022') 
# 创建多级目录 makedirs(path1/path2..[,mode])
os.makedirs('D:\\Pystudy\\base_exercise\\base_exercise20\\2021\\24')

 (4)删除目录

# 删除目录  rmdir(path)
os.rmdir('D:\\Pystudy\\base_exercise\\base_exercise20\\2021\\24') 
 # 删除多级目录 removedirs(path1/path2...),删除所有为空的目录
 os.removedirs('D:\\Pystudy\\base_exercise\\base_exercise20\\2021\\24')

(5)设置当前工作目录

# 将path设置为当前工作目录 chdir(path)
os.chdir('D:\\Pystudy\\base_exercise\\test')
print(os.getcwd())

(6)改变光标的位置

# f.seek(offset, whence) 可以改变文件对象的位置。通过向参考点添加 offset 计算位置;参考点由 whence 参数指定。 whence 值为 0 时,表示从文件开头计算,1 表示使用当前文件位置,2 表示使用文件末尾作为参考点。省略 whence 时,其默认值为 0,即使用文件开头作为参考点。
f.seek(2)

(7)获取当前光标位置

# f.tell() 返回整数,给出文件对象在文件中的当前位置,表示为二进制模式下时从文件开始的字节数,以及文本模式下的意义不明的数字。
f.tell()

(8)获取当前目录下的文件(含后缀)及目录名

print(os.listdir())

(9)清楚内容

# truncate()用于清除内容
f.truncate(0)    # 清空整个文件

os.path模块

(1)绝对路径

# abspath(path)    获取文件或目录的绝对路径
print(os.path.abspath('a.txt'))

(2)判断文件是否存在

#exists(path)    判断文件或目录是否存在,存在True,否则False
print(os.path.exists('a.txt'))

(3)目录拼接

#join(path,name)   将目录与目录或文件名拼接起来
print(os.path.join('test','a.txt'))

(4)目录分离



path, filename = os.path.split(os.path.abspath('a.txt'))



(5)提取文件名

#basename(path)   从一个目录中提取文件名
print(os.path.basename('D:\\Pystudy\\a.txt'))

(6)提取路径名

#dirname(path)  从一个路径中提取文件路径,不含文件名
print(os.path.dirname('D:\\Pystudy\\base_exercise'))

(7)判断是否为目录

#isdir(path) 判断是否为路径
print(os.path.isdir('D:\\Pystudy\\base_exercise'))

with上下文管理

with open('a.txt','r',encoding='UTF-8') as f:
    print(f.read())    # 读取文件内容,返回字符串

读取全部文件内容

with open('a.txt', 'r', encoding='UTF-8') as f:
    print(f.readlines())  # 读取多行内容,返回列表

获取文件中对应的行索引

# enumerate()
with open('a.txt', 'r', encoding='UTF-8') as f:
    #print(f.readlines())  # 读取多行内容
    for i in enumerate(f.readlines()):    #返回元组
        print(i)