文件操作
Posted aiyumo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件操作相关的知识,希望对你有一定的参考价值。
知识点汇总
1-文件
1- Python2 File -- Python3 TextIOWrapper
2-文件的打开:
1- open(file,mode)-----函数---有返回值--文件对象
2- 一定要有file文件路径(路径、文件名、文件格式) 否则
TypeError: Required argument ‘file‘ (pos 1) not found
3- fo = open(fileDir)---只读
4- 路径的写法
1- fileDir = ‘G:/pyTest1.txt‘
2- fileDir2 = ‘G:\pyTest1.txt‘
3- fileDir3 = r‘G:pyTest1.txt‘--取消转义
5- 路径
1- 绝对路径--根目录开始的 G:/pyTest1.txt
2- 相对路径 ./当前位置 ../ 上一级
6- 读模式
0- 如果该文件不存在会报错!
1- fo = open(fileDir,‘r‘) === fo = open(fileDir)
2- fo.tell()---从0开始
3- fo.read(2)----读2个字符
4- fo.read()--读全部内容
5- 文件中的换行是2个长度
‘a
b’---字符串中是一个
6- fo.close()--关闭文件
7- 移动文件指针位置: seek()
1- 0模式---绝对位置模式 fo.seek(1,0)
前提:python3 一定在‘rb‘模式下---二进制模式--非文本文件(图片)
2- 1模式---当前位置开始移动 fo.seek(移动的位数,模式1)
移动的位数 正数:向后移 负数:向前移
3- 2模式---从尾部
1- fo.seek(-1,2)
2- 移动的位数 正数:向后移 负数:向前移
案例:
fileDir = ‘G:/pyTest1.txt‘
fo = open(fileDir,‘rb‘)
print(‘读前‘,fo.tell())
print(fo.read(2))
print(‘读后‘,fo.tell())
fo.seek(2,2)
print(‘移动后‘,fo.tell())
8- readline读取一行
1- 该方法返回是 print(type(fo.readline()))-- <class ‘str‘>
2- 文件指针会做相应的偏移
9- readlines读取所有行
1- 该方法返回是 print(type(fo.readlines()))-- <class ‘list‘>
区别:
1- fo.read()----返回str
2- fo.readlines()---返回是list---每一行是里面一个元素!
2- fo.read().splitlines()---返回list 而且去掉换行符
7- 文件写模式:
1- fo = open(fileDir,‘w‘)
2- 如果该路径下的文件存在---会清空!
3- 如果该路径下的文件不存在---会新建!
4- 在pycharm里面,你执行了fo.write(‘123‘)--可以直接写进去
5- fo.write(‘123‘)--返回值---写的字符长度
6- fo.flush() 强行写入文件
7- fo.close() 关闭文件会强行写入文件
8- 追加模式 a
1- 只是为了在文件末尾追加内容而打开文件
9- With open 方式
1- with open(fileDir) as rFile:----rF = open(fileDir)
2- 可以省略fo.close()
3- 操作多个文件
seek方法:
1- (1,模式)---0模式----绝对位置,从0开始---配套 ‘r’
处理:文本文件---txt、log ----返回--str
2- (1,模式)---1模式----当前位置,开始
文件打开的模式一定是 rb--- 读二进制(bin)---.pcap格式、图片、音频、视频文件用rb模式打开
3- (1,模式)---2模式----尾部位置,开始---rb--- 读二进制(bin)
windows --文件里面的换行--
2个长度 ‘
‘---一个 linux-一个 字符串:
以上是关于文件操作的主要内容,如果未能解决你的问题,请参考以下文章