1.文件读写:
读文件
file=open('file/e.txt',mode='r')
ret=file.read()
print(ret)
file.close()
写文件`
file=open('file/a.txt',mode='w')
file.write('aaabbbbccc')
file.close()
2。文件的权限
r的用法:
# file=open('QQ截图20190104112526',mode='rb+')
# file.read()
#
# file.close()
#1.读取操作
#以只读的方式打开文件。文件的指针会放在文件的开头,这是默认模式
# file=open('file/aa.txt',mode='r')
# ret=file.read()
# print(ret)
# file.close()
'''
rb 以二进制格式打开文件用于只读。文件的指针,将
会放在文件的开头,一般用于非文本文件如图片等
'''
# file=open('file/aa.bb.txt',mode='rb')
# ret=file.read()
# print(ret)
# file.close() #
#打开文件用于读写,文件指针将放在文件的开头。
# file=open('file/aa.txt',mode='r+')
# ret=file.read() #bcccaabbcc
# ret1=file.write('aabbcc')
# print(ret1) #在前面写aabbcc
# file.close()
'''
rb+ 以二进制格式打开一个文件用于读写
文件指针将放在文件的开头,一般用于非文
本文件,如图片
'''
# file=open('file/b"aa.bb.txt",mode='rb+')
# # # ret=file.read()
# ret1=file.write('aaaaa')
# print(ret1)
# # # print(ret)
# file.close()
# 2写操作:
'''
w 打开一个文件只用于写入。文件已存在则打开文件,并从开头开始编写
原有内容会被删除。如果文件不存在,创建新文件
。
'''
# file= open('file/a.txt',mode='w')
# file.write('ccc')
# file.close()
# file= open('file/a.txt',mode='w')
# file.write('ccc')
# file.close()
'''
wb 以二进制格式打开一个文件只用于写入。如果该文件夹已存在则打开文件夹,并从开头开始编写,
原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
'''
# file=open('file/aa.txt',mode='w')
# file=open('file/c.aaa.png',mode='rb') #读图片用rb
# ret=file.read()
# with open('file/aa.bb.txt',mode='wb') as f1: #写图片用wb
# f1.write(ret)
# file.write('是是上')
#
# file.close()
'''
w+ 打开文件用于读写,如果该文件已存在则打开文件
并从开头开始编辑,即原有内容会被删除。如果该文件不存在
创建新文件。
'''
# file=open('file/a.txt',mode='w+')
# ret=file.read()
# print(ret)
# file.write('nnnn')
# file=open('file/c.txt',mode='w')
# file.write('mmm')
# file.close()
# with open("190110/QQ截图20190104112526.png", 'rb+') as f1:
# with open('f.png', 'wb') as f2:
# f2.write(f1.read)
'''
wb+ 以二进制格式打开文件用于读写。如果该文件已存在
则打开文件,并从开头开始编辑,原有内容会被删除。如果文件不存在
创建新文件,一般用于非文本文件如图片
‘’‘
’#
'''
a 打开文件用于追加,如果文件已经存在,指针将放在
文件末尾,也就是说新文件内容被写入到已有内容之后。
如果 文件不存在,创建新文件进行写入。
'''
# file=open('file/a.txt',mode='a')
# file.write('llll')
# file.close()
# file=open('file/f.txt',mode='a')
# file.write('kkkkk')
# file.close()
'''
ab 以二进制的格式打开一个文件用于追加,如果文件已存在
文件指针放在文件末尾也就是说,新的内容被写入已有内容
之后,如果该文件不存在,创建新文件进行书写。
'''
# file=open('file/g.txt',mode='a')
# file.write('wwww')
# file.close()
'''
总结:r w a rb wb ab r+ w+ a+ rb+ wb+ ab+
'''
调用read()会一次性读取全部内容,如果文件是10G,内存就爆了,会导致程序卡死,
所以为保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容
'''
# file=open('file/h.txt')
# ret=file.read()
# print(ret)
# file.close()
# readline()
'''
readline 每次读一行,并自带换行功能,每一行末尾都会读到\n
'''
# file=open('file/h.txt')
# ret=file.readline()
# print(ret) #读第一行
# print(len(ret)) #6 末尾有一个换行符
# print(file.readline())#读第二行
# print(file.readline(3)) #读第三行
# file.close() #
# readlines()
'''
readlines,一次性一行的形式读取文件中的所有内容,并返归一个list,
需要去遍历读出来
'''
# file=open('file/h.txt')
# ret=file.readlines()
# print(ret) #['rrrrr\n', 'ccccc\n', 'vvvvv']
# (4)循环读取
# file句柄是一个可迭代的对象因此,可以循环读取文件中的内容,
# 每次读一行
# file=open('file/h.txt')
# for line in file:
# print(line)
# 2.写操作
# write() --1
# file=open('file/c.txt',mode='w')
# file.write('aaa')
# file.write('bbbbbb')
# file.close() #在后面继续写
# write()--2
# file.writelines(seq)
# 把seq的内容全部写到文件中(多行一次性写入)
# file=open('file/i.txt',mode='w')
# lst=['aa\n','bb','cc']
# file.writelines(lst)
# file.close()
# 3.其它操作
# tell() - --1
# tell获取文件当中当前光标的位置
# file=open('file/h.txt',mode='r')
# ret=file.read(3)
# pos=file.tell()
# print(ret)
# print(pos) #3
# file.close()
#(2) seek()
# seek移动光标位置
# 从参数(offset,whence)(移动的长度(字节),相对位置0,从头开始(默认)
# 1从当前,2从末尾)
# file=open('file/h.txt',mode='r')
# print(file.read(3)) #读前三个
# # file.seek(0,0) #rrb
# # file.seek(0,1)
# # file.seek(0,2)
# ret=file.read(3) #再继续读三个
# print(ret)
# file.close()
#(4) name和mode
# file.name返回路径
# file.mode返回文件读写模式
# file=open('file/h.txt','r')
# print(file.name) #file/h.txt
# print(file.mode) #r
# 五。with使用with方式操作文件,可以不关闭文件,会自动关闭文件
# with open('file/h.txt') as file:
# ret=file.read()
# print(ret)
# 六,乱码
# with open('file/i.txt',mode='w')as f:
# f.write('啊哈')
# with open('file/i.txt',mode='w',encoding='utf-8')as f:
# f.write('啊哈') #utf-8 用utf-8解码
# 八,文件操作
# 使用os模块对文件进行相关操作。
#1,重命名文件
import os
# os.rename('file/tst','file/k.txt')
# os.rename('file/j','file/j.txt')
# 2,删除文件
# os.remove(path)
# os.remove('file/tst1/tst2/test3')
# 3.创建目录mkdir
# os.mkdir('file3')
# os.mkdir('file/file2')
# os.mkdir('file/file3/file4')
# 4.创建多级目录
# os.makedirs('file/file5/file7')
# 5.删除多级目录
# os.removedirs('file/file5/file7/')
#6.删除目录
# os.rmdir('file3')
# 7.获取当前所在目录:
# getcwd()
# path=os.getcwd()
# print(path) #D:\yhtzy\190110
# 8.获取目录列表
# os.listdir()
# list=os.listdir(os.getcwd())
# print(list)
# 9.切换所在目录chdir()
# os.chdir(path)
# print(os.getcwd()) #D:\yhtzy\190110
# os.chdir(os.getcwd()+'\\tst1')
# print(os.getcwd()) #D:\yhtzy\190110
# 10.p判断文件夹是否存在
# b=os.path.exists('file/tst1')
# print(b)
# 11.判断是否是文件
# bool=os.path.isfile('file/tst1/tst2')
# print(bool)
# 12.判断是否为目录
# bool=os.path.isdir('file/file2')
# print(bool)
#13获得绝对路径
# abspath=os.path.abspath('file/tst1/tst2')
# print(abspath)
# 14.判断是否为绝对路径 #绝对路径是从根上找,从盘开始
# os.path.isabs(os.getcwd())
# 15.获取路径中最后部分
# path=os.path.basename('file/file3/file4')
# print(path) #file4
# print(__file__)
# path=os.path.basename(__file__)
# print(path) #demo02.py
# filename=os.path.basename(__file__)
# print(filename)
# 16.获取路径中的路径部分
# dirname=os.path.dirname(os.getcwd())
# print(dirname) #D:\yhtzy
# 17.将多个目录组织成路径返回。
# ret=os.path.join('file','file1','tt')
# print(ret) #file\file1\tt
# 18,获取文件信息
#getatime()返回path所指的文件或者最后访问时间
# ret=os.path.getatime('file')
# print(ret)
#getctime()查看文件创建时间
# ret=os.path.getctime('file/file2')
# print(ret)
#getmtime()返回path所指向的文件或者目录的最后修改时间
# ret=os.path.getmtime('file/file3')
# print(ret)
#getsize()查看文件的大小)
# ret=os.path.getsize('file/file2')
# print(ret)