1 文件编码格式设定
程序开头 #encoding=gbk(编码格式)
2 文件的读写原理
- Python操作文件>打开或新建文件>读写文件>关闭资源
- 解释器运行py文件使用操作系统资源对硬盘中的文件进行操作
- 语法规则 file=open(filename(文件名) [,mode(读或写,默认读),encoding(文本文件的编码格式,默认为gbk)]
file=open('a.txt','r')
print(file.readlines())
file.close()
3 常用文件打开操作
-
r,读取,不存在该文件会报错
file=open('a.txt','r') print(file.readlines()) file.close()
-
w,写入,如果不存在该文件则创建,存在则覆盖
fp=open('b.txt','w') (当前目录写入)//指定路径写入fp=open('e:/a.txt', 'w') fp.write('python') //print('python',file=fp) fp.close()
-
a,以追加模式打开文件,存在则追加内容,不存在则创建
file=open('b.txt','a') file.write('python') file.close()
-
b,以二进制打开文件,不能单独使用
scr_file=open('logo.png','rb') target_file=open('copylogo.png','wb') target_file.write(scr_file.read()) target_file.close() scr_file.close()
-
+,以读写的方式打开,如a+
4 文件对象的常用方法
-
read([size]),size为读取的字符数,若省略,则读取全部
-
readline(),读一行
-
readlines(),读取每一行,结果为一个列表
-
write(),将字符串str内容写入文件
-
writelines(),将字符串列表s_list写入文件,不加换行符
-
seek(size),将指针移到size处,0处为字符串最左端
file=open('b.txt','r') file.seek(2) print(file.read()) print(file.tell()) file.close()
-
tell(),返回当前文件指针的位置
-
flush(),将缓存区内容写入文件,不关闭文件
-
close(),将缓存区内容写入文件,关闭文件
5 with语句,不管什么原因跳出with都可以顺利关闭
with open('logo.png','rb') as scr_file:
with open('copylogo2.png','wb') as target_file:
target_file.write(scr_file.read())
6 目录操作
6.1 os模块
-
调用系统的程序
- 打开系统软件
- os.system('notepad.exe')
- os.system('calc.exe')
-
调用可执行文件
- 打开第三方软件,可执行文件
- os.startfile()
- import os
- os.startfile("D:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe")
-
执行命令
- 只需将该命令行以字符串输入
- os.system(pip insatll wordcould)
-
相关函数
import os print(os.getcwd()) os.chdir('E:\\pythonProject\\chap14') print(os.getcwd()) lst=os.listdir('..\chap15') print(lst) os.mkdir('newdir3') os.makedirs('a/b/c') os.rmdir('newdir3') os.removedirs('a/b/c')
6.2 os.path模块
import os.path
print(os.path.abspath('test7.py'))
print(os.path.exists('test7.py'),os.path.exists('tast10.py'))
print(os.path.join('E:\\pythonProject','test7.py'))
print(os.path.split('E:\\pythonProject\\chap14'))
print(os.path.splitext('test7.py'))
print(os.path.basename('E:\\pythonProject\\chap14'))
print(os.path.dirname('E:\\pythonProject\\chap14'))
print(os.path.isdir('E:\\pythonProject\\chap14'))
6.3 实例
递归遍历所有文件,包括子目录下的文件
import os
path=os.getcwd()
lst_files=os.walk(path)
for dirpath,dirname,filename in lst_files:
print(dirpath)
print(dirname)
print(filename)
print('--------------------')
for dir in dirname:
rint(os.path.join(dirpath,dir))
for file in filename:
print(os.path.join(dirpath, file))
print('--------------------')
列出指定目录下的所有py文件
import os
path=os.getcwd()
lst=os.listdir(path)
for filename in lst:
if filename.endswith('.py'):
print(filename