一、打开模式
打开模式 | 描述 |
---|---|
r | 以只读模式打开文件。文件的指针将会放在文件的开头 |
w | 以只写模式打开文件。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a | 以追加模式打开文件。如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在则创建,指针在文件开头。 |
b | 以二进制模式打开文件,需要与其他模式一起使用,如rb,wb,ab |
+ | 以读写方式打开文件,需要与其他模式一起使用,如r+,w+,a+,rb+,wb+,ab. |
例:
- 读一文件内容:
file=open('a.txt','r',encoding='UTF-8')
print(file.readlines())
file.close()
with open('a.txt','r',encoding='UTF-8') as file:
print(file.read())
- 创建或写入内容:
file=open('b.txt','w')
file.write('hello')
file.close()
- 创建或追加内容:
file=open('b.txt','a')
file.write('hello')
file.close()
- 复制一张图片:
with open('leimu1.png','rb') as src_file:
with open('copyleimu2.png','wb') as copy_file:
copy_file.write(src_file.read())
二、常用指令
指令 | 描述 |
---|---|
read([size]) | 读取size个字节或字符的内容返回,若省略则读到末尾 |
readline() | 读取一行内容 |
readlines() | 把每一行作为独立字符串,放入列表返回 |
write(str) | 将字符串str内容写入文件 |
writelines() | 将字符串列表写入文件 |
seek(offset[,whence]) | 把文件指针移动到新的位置,offset表示相对于whence的位置,whence默认值0为从文件头开始,1为从当前位置开始,2为从末尾开始 |
tell() | 返回文件指针的当前位置 |
flush() | 把缓冲区的内容写入文件,但不关闭文件 |
close() | 把缓冲区的内容写入文件,并关闭文件 |
例:
file=open('c.txt','a',encoding='UTF-8')
print(file.read(2))
print(file.readline())
print(file.readlines())
lst=['hel','lo']
file.write('hello')
file.writelines(lst)
file.flush()
file.write('hhh')
file.close()
三、os
1.调用可执行文件
import os
os.system('notepad.exe')#打开记事本
os.system('calc.exe')#打开计算器
#打开qq
os.startfile('C:\\Program Files (x86)\\Tencent\\QQ\\Bin\\qq.exe')
2.工作目录
指令 | 描述 |
---|---|
getcwd() | 返回当前的工作目录 |
listdir(path) | 返回指定路径下的文件和目录信息 |
mkdir(path[,mode]) | 创建目录 |
makedirs(path1/path2…[,mode]) | 创建多级目录 |
rmdir(path) | 删除目录 |
removedirs(path1/path2…) | 删除多级目录 |
chdir(path) | 将path设置为当前工作目录 |
例子:
import os
# getcwd() 返回当前的工作目录
print(os.getcwd())
# listdir(path) 返回指定路径下的文件和目录信息
lst=os.listdir('../file')
print(lst)
# mkdir(path[,mode]) 创建目录
os.mkdir('dir1')
# makedirs(path1/path2...[,mode]) 创建多级目录
os.makedirs('dir2/dir3/dir4')
# rmdir(path) 删除目录
os.rmdir('dir1')
# removedirs(path1/path2...) 删除多级目录
os.removedirs('dir2/dir3/dir4')
# chdir(path) 将path设置为当前工作目录
os.chdir('E:\\work\\python\\test1')
print(os.getcwd())
四、os.path
指令 | 描述 |
---|---|
abspath(path) | 用于获取文件或目录的绝对路径 |
exists(path) | 用于判断文件或目录是否存在,存在返回True,不存在返回False |
join(path,name) | 将目录与目录或者文件名拼接起来 |
split() | 分离路径和文件名 |
splitext() | 分离文件名和扩展名 |
basename(path) | 从一个目录中提取文件名 |
dirname(path) | 从一个路径中提取文件路径,不包括文件名 |
isdir(path) | 用于判断是否为路径 |
例子:
#abspath(path)用于获取文件或目录的绝对路径
print(os.path.abspath('demo3.py'))
#exists(path)用于判断文件或目录是否存在,存在返回True,不存在返回False
print(os.path.exists('demo3.py'),os.path.exists('demo10.py'))
#join(path,name)将目录与目录或者文件名拼接起来
print(os.path.join('E:\\work\\python\\test1\\file','demo3.py'))
#split()分离路径和文件名
print(os.path.split('E:\\work\\python\\test1\\file\\demo3.py'))
#splitext()分离文件名和扩展名
print(os.path.splitext('demo3.py'))
#basename(path)从一个目录中提取文件名
print(os.path.basename('E:\\work\\python\\test1\\file\\demo3.py'))
#dirname(path)从一个路径中提取文件路径,不包括文件名
print(os.path.dirname('E:\\work\\python\\test1\\file\\demo3.py'))
#isdir(path)用于判断是否为路径
print(os.path.isdir('E:\\work\\python\\test1\\file\\demo3.py'))
输出: