三种路径写法:
fileDir1 = 'g:/pyTest.txt'
fileDir2 = r'g:/pyTest.txt'
fileDir3 = 'g:\\pyTest.txt'
file_object = open(file_name, access_mode='r')
access_mode: r(默认),w(写),wr读+写 w+读写
注意事项
1. 路径要正确
2.格式要带全 .txt
tell()获取文件指针位置 文件内部换行符是2个长度(windows), linux是一个。
fo = open(xx,xx)
fo.tell()
str1 = fo.read()
返回的类型是str, 不加参数时读取所有
str1 = fo.read(2) 可以加个数, 读取两个字符
str1 = fo.read() 读取全部
fo.seek(2) 里面数字不能为负数
fo.seek(0) 移动初始开头
seek, 移动指针位置, 有三种模式
seek(n) --O模式, 默认, 从头/0开始,从开始参考
seek(n,1) --1模式, 从当前位置 -这个要打开文件时用 br fo=open(fileDir1,'br')
seek(n,2) --2模式, 从 尾部位置 ps:也是向后移动
输出
往前移动:
seek(-n,2)
seek(-n,1) --不要超过范围,超过范围,会报错。
fo.readlines()返回的是列表,所以可以这么写
fo.readlines()[0]
fo.readline() 读一行,返回的是<class 'bytes'>
fo.read().splitlines() 获取所有行的同时,去掉所有的空字符\n,\t
写模式: w
如果该文件存在,所有内容会被清空
如果文件不存在,会自动创建一个文件
fo = open('filename.txt','w')
fo.write('123456\n') --此时只是保存在内存里, 没有写入文件里。 --实际写进文件里呀!!!
--有返回值,返回写的长度。
--这里的\n是一个字符。
要写入, 两种方法
1. fo.flush()
2. fo.close()
模式a 追加模式
写模式不能读。
读写都会去操作文件指针, 所以同时有读,写两个操作, 一定要注意指针的位置 。
with open(...) as fo:
with open(...) as fo,open(...) as f1:
优势:1, 可以操作多个文件 2, 会自动执行fo.close()
假设文件里只有两行数据
adcdef
123456
则#后面是输出结果:
with open(r'd:\ab.txt','r') as fo:
print(fo.tell()) #0
fo.readline()
print(fo.tell()) #8
fo.readline()
print(fo.tell()) #14
fo.seek(0) #将鼠标移动到开始
print(fo.tell()) #0
fo.read(4)
print(fo.tell())#4
fo.seek(2)#
print(fo.tell()) #2