第十五章 文件读写

第十五章 文件读写

常见的字符编码格式

  1. python的解释器使用的Unicode(内存)
  2. .py文件在磁盘上使用的是utf-8存储(外存)

对文件的操作

写入文件可以用write()和writelines()
读文件可以用read(),readline()和readlines()
文件的打开模式:只读r,只写w,追加a,二进制用b

打开模式 描述
r 以只读模式打开文件,文件的指针将会放在文件的开头
w 以只写模式打开文件,如果文件不存在则创建,如果文件存在则覆盖原有内容,文件指针在文件的开头
a 以追加模式打开文件,如果文件不存在则创建,文件指针在问文件的开头,如果文件存在,则在文件末尾追加内容,文件指针在文件末尾
b 以二进制方式打开文件,不能单独使用,需要与其他模式一起使用,rb或wb
+ 以读写方式打开文件,不能单独使用,需要与其他模式一起使用,a+

文件对象的常用方法

方法名 描述
read([size]) 从文件中读取size个字节或字符的内容返回。若省略[size],则一次性读取文件的所有内容
readline() 从文本文件中读取一行内容
readlines() 把文本文件中每一行都作为独立的字符串对象,并将这些对象放入列表返回
write(str) 将字符串str写入文件
writelines(s_list) 将字符串列表s_list写入文本文件,不添加换行符
seek(offset,[whence]) 将文件指针移动到新的位置,offset表示相对于whence的位置:offset为正则向结束方向移动,为负则向开始方向移动。whence为0(默认值)表示从文件头开始计算,1表示从当前位置开始计算,2表示从文件尾开始计算
tell() 返回文件指针的当前位置
flush() 把缓冲区的内容写入文件,但不关闭文件
close() 把缓冲区的内容写入文件,关闭文件,并释放文件对象相关资源
file = open('a.txt','r')
#print(file.readlines())# 将文件内容全部读出来
#print(file.readline())
print(file.read(2))# 可以选择读一部分
file.close()

file = open('b.txt','w')
file.write('Python')
file.close()

file = open('b.txt','a')
file.write('Python')
file.close()

file = open('c.txt','a')
#file.write('hello')
lst = ['java','go','python']
file.writelines(lst)
file.close()

src_file = open('logo.jpg','rb')
target_file = open('copylogo.jpg','wb')
target_file.write(src_file.read())
target_file.close()
src_file.close()

目录操作

os模块

os模块是python内置的与操作系统功能和文件系统相关的模块,该模块中的语句的执行结果通常与操作系统有关,在不同的操作系统上运行,得到的结果可能不一样
os模块操作目录相关函数

函数 说明
getcwd() 返回当前的工作目录
listdir(path) 返回指定路径下的文件和目录信息
mkdir(path,[mode]) 创建目录
makedirs(path1/path2…,[mode]) 创建多级目录
rmdir(path) 删除目录
removedirs(path1/path2) 删除多级目录
chdir(path) 将path设置为当前工作目录
import os
#os.system('notepad.exe') # 打开记事本
#os.system('calc.exe') # 打开计算器
# 直接调用可执行文件
os.startfile('D:\\Program Files\\Tencent\\QQ\\Bin\\qq.exe')


import  os
print(os.getcwd())
#print(os.listdir('../chap15'))

#os.mkdir('newdir2')
#os.makedirs('A/B/C')

#os.rmdir('newdir2')
#os.removedirs('A/B/C')

os.chdir('D:\\pythonProject\\chap15')

os.path模块

os.path模块操作目录相关函数

函数 说明
abspath(path) 用于获取文件或目录的绝对路径
exists(path) 用于判断文件或目录是否存在,如果存在返回True,否则返回False
join(path,name) 将目录与目录或文件名拼接起来
splitext() 分离文件名和扩展名
basename(path) 从一个目录提取文件名
dirname(path) 从一个路径中提取文件路径,不包括文件名
isdir(path) 用于判断是否路径
import os.path
print(os.path.abspath('demo13.py'))
print(os.path.exists('demo13.py'),os.path.exists('demo18.py'))
print(os.path.join('D:\\pythonProject\\vipPython','demo13.py'))
print(os.path.split('D:\pythonProject\\vipPython\chap15\demo13.py'))
print(os.path.splitext('demo13.py'))
print(os.path.basename('D:\\pythonProject\\vipPython\\chap15\\demo13.py'))
print(os.path.dirname('D:\\pythonProject\\vipPython\\chap15\\demo13.py'))
print(os.path.isdir('D:\\pythonProject\\vipPython\\chap15\\demo13.py'))

'''
D:\pythonProject\vipPython\chap15\demo13.py
True True
D:\pythonProject\vipPython\demo13.py
('D:\\pythonProject\\vipPython\\chap15', 'demo13.py')
('demo13', '.py')
demo13.py
D:\pythonProject\vipPython\chap15
False
'''

你可能感兴趣的:(python基础,python,os)