一,python文本文件常用编码格式
![]()
- 一个字符相当于一个英文字母
- GB2312等表示中文创建的,GB18030有少数民族的语言
- Unicode 包含全世界字符,中英文都是2字节表示
'---------------------------------打开文件编码容处理----------------------------------'
def f_t(f):
try:
f_cod = open(f, 'r', encoding='utf-8')
except:
f_cod = open(f, 'r', encoding='GBK')
return f_cod
二,文件操作-文件读写
#打开/新建文件方法了解
open(filename [mode,encoding])
1,filename : 要创建或打开文件的名称
2,mode: 打开文件的模式,读写等
3,encoding: 文本中字符等编码格式
基本结构代码如下:
#读模式打开test.txt文件
file = open('test.txt','r') #注意内置函数
#读取文件
print(file.read())
#关闭资源
file.close()
推荐了解:with...as...语句,(优点不用开了忘记关闭资源的方法)
三,文件读写-不同打开模式
-----------------不同打开模式:r只读模式-----------------
file = open('test.txt','r')
print(file.read())
file.close()
-----------------不同打开模式:w只写模式,文件若没有则创建,有覆盖文件内容-----------------
file1 = open('a.txt','w')
print(file1.write('python 学习'))
file1.close()
file2 = open('test.txt','w')
file2.write('python 学习')
file2.close()
-----------------不同打开模式:a追加模式,在文件若没有则创建,有追加文件内容-----------------
file3 = open('a.txt','a')
print(file3.write('python'))
file2.close()
-----------------不同打开模式:b以2进制模式打开文件,配合以上不同模式一起使用,rb wb ab-----------------
r_file = open('a.png','rb') #读取二进制文件内容
w_file = open('copy_a.png','wb') #创建一个新文件
file4 = w_file.write(r_file.read()) #将读取的二进制文件写入到所创建到文件中
r_file.close()
w_file.close()
-----------------不同打开模式:+以读写模式打开文件,配合以上不同模式一起使用,-----------------
'''
eg:a+
'''
四,文件读写-文件对象常用方法
# print(f.read()) 读取全部内容 eg:read(2) 添加数字读取两个字符
# print(f.readline()) 只读取一行内容,括号里可以放2数字,这个2读取两个字符
# print(f.readlines()) 读取的是列表,把每一行作为单独的字符串对象,把这些对象放到列表当中
#f.write('你好') 将字符串写入文本
#1. lst = ['读取全部内容','print','hj','write']
#2. f.writelines(lst) #将列表写入文本
f_c = f_t('a.txt')
#f_c.seek(2) #把文件指针移动到新的位置上开始读
print(f_c.read())
print(f_c.tell()) #显示最后一个字符的位置
#f_c.flush() #打开通道继续缓存刷到磁盘中去
#f_c.close()
五,文件读写-os模块的使用:可以调用操作系统相关的模块
#调用操作系统应用程序
#os.system('notepad.exe') #打开记事本
#直接调用指定可执行文件
#os.startfile(path) #path为指定路径的程序
#print(os.getcwd()) #获取当前路径
#print(os.listdir(r'E:\T.发版评审\发版评审表')) #os.listdir(path)返回指定路径下的文件和目录信息,指定后缀名
#print(os.mkdir('b.txt')) #创建一个目录 os.mkdir(filename)文件夹,文件存在不能重复创建
#print(os.makedirs('lish/test/b')) #创建多级目录文件夹,os.mkdir(file1/file2/file3),文件存在不能重复创建
#os.rmdir('b.txt') #删除一个目录文件夹os.rmdir(filename)文件不存在不能重复创建
#os.removedirs('lish/test/b') #删除多个目录文件夹 os.removedirs(file1/file2/file3)文件不存在不能重复创建
#os.chdir(r'C:\Users\lish\Desktop\lish\test\b') #os.chdir(path),将当前目录设置为指定path
#print(os.getcwd())
五,文件读写-os.path模块的使用:也可以操作目录文件
os.path.abspath('study_8day.py')) #os.path.abspath(filename/path获取文件或目录的绝对路径
os.path.exists('lish/test/b') #os.path.exists(path)用于判断文件或者目录是否存在,如果存在返回true,反之返回false
os.path.join(r'C:\Users\lish\Desktop\lish\test','a') #os.path.join(path,new_path/filename)选择指定目录与新建立目录或者文件名拼接起来
os.path.split(r'C:\Users\lish\Desktop\lish\test')#分离目录与文件进行拆分
os.path.splitext('test.py') #拆分文件与后缀名
os.path.basename(r'C:\Users\lish\Desktop\lish\test\b\a.txt')#从一个目录当中提取文件名
os.path.dirname(r'C:\Users\lish\Desktop\lish\test\b\a.txt')#从一个路径中提取文件路径,不包含文件名
os.path.isdir(r'C:\Users\lish\Desktop\lish\test\b') #用户判断是否为路径