⼩⽩学习python之file中open⽤法
'''
1. 初识⽂⽂件操作
2. 只读(r, rb)
3. 只写(w, wb)
4. 追加(a, ab)
5. r+读写
6. w+写读7
. a+写读(追加写读)
8. 其他操作⽅⽅法
9. ⽂⽂件的修改以及另⼀⼀种打开⽂⽂件句句柄的⽅⽅式
打开⽂件的⽅式:r,w,a,r+,w+,a+,rb.wb,ab,r+b,w+b,a+b  默认使⽤的r(只读模式)
'''
#只读操作
# f=open('',mode='r',encoding='utf-8')
# ad()
# print(r)
# f.close()
#-------------------------------------------------
#python file⽅法
#file对象使⽤open来创建函数
#打开⽂件
# fo=open('','wb')
# print('⽂件名为',fo.name)
# #关闭⽂件
# fo.close()
#--------------------------------------------------
#只读操作(r,rb)
#r操作
宣萱kill this love
#---------------------------------------
#encoding编码集,根据⽂件的实际保存编码进⾏获取数据,更多的都是⽤utf-8
# f=open('',mode='r',encoding='utf-8')
# ad()
# print(r)
#---------------------------------------
#rb读取出来的数据是bytes类型,在rb模式下⾯,不能选择encoding字符集
'''
rb数据的作⽤
在读取⾮⽂本⽂件的时候. ⽐如读取MP3. 图像. 视频等信息的时候就需要⽤到rb.
因为这种数据是没办法直接显⽰出来的.  在后⾯⾯我们⽂件上传下载的时候还会⽤到. 还有.
我们看的直播. 实际上都是这种数据
'''
# f=open('',mode='rb')
# ad()
# print(r)
# f=open('f:\\astronaut.3gp',mode='rb')    #路径\需要进⾏转义  rb打印视频⽂件
# ad()
# print(r)
#-------------------------------------------------------------------------
'''
绝对路径:从磁盘根⽬录开始⼀直到⽂件名
相对路径:同⼀个⽂件夹下的⽂件. 相对于当前这个程序所在的⽂件夹⽽⾔.
如果在同⼀个⽂件夹中. 则相对路径就是这个⽂件名. 如果在上⼀层⽂件夹. 则要../
'''
#读取⽂件的执⾏办法:
#read()将⽂件中的全部内容全部提取出来,弊端占内存,⽂件过⼤,导致内存崩溃
# f=open('../as/哈哈',mode='r',encoding='utf-8')
# ad(10)  #n打印多少个字符的个数
# print(r)
#read(n)读取n个字符的意思,需要注意的是,再次读取,那么会在当前位置继续去读,⽽不是从头读,如果使⽤的是rb,则读出来第n个字节# file=open('../as/哈哈',mode='r',encoding='utf-8')
# ad(2)
# ad(2)
# print('结果是',r)
# print('结果是',r1)
#----------------------------------------------------
#readline() ⼀次读⼀个⾏数据,注意readline()结尾,注意每次读取出来的数据都会有⼀个‘\n’所以我们要⽤strip()⽅法来去掉空格
# file=open('../as/哈哈',mode='r',encoding='utf-8')
# adline().strip()
# adline().strip()
# adline().strip()
# print(r)
# print(r1)
# print(r2)
#------------------------------------------------------
#readlines()
#readlines将每⼀⾏形成⼀个元素放到⼀个列表中,将所有的内容都读取出来,所以也是容易出现内存崩溃的问题,不推荐使⽤
# f=open('../as/哈哈',mode='r',encoding='utf-8')
# adlines()
# print(r)
# adlines()              #将内容元素放到⼀个列表中,对列表进⾏迭代打印。
# print(lst)
# for line in lst:
#    print(line.strip())
#----------------------------------------------------------
#循环读取,这种⽅式是组好的,每次读取⼀⾏内容,不会产⽣内存溢出的问题
f=open('../as/哈哈',mode='r',encoding='utf-8')
for line in f:
print(line.strip())
f.close()
#⽂件的追加模式
# f=open('⼩娃娃',mode='w',encoding='utf-8')
# f.write('黄河长江,我的中国信⼼')
# f.flush()  #刷新缓存
# f.close()  #关闭⽂件
小白学python买什么书#------------------------------------------
#追加模式
# f=open('⼩娃娃',mode='a',encoding='utf-8')  #a  追加模式
# f.write('马化腾的最爱')
# f.flush()  #刷新缓存
# f.close()  #关闭
# f=open('⼩娃娃',mode='ab')  #ab  追加模式
# f.write('李彦宏的最爱'.encode('utf-8'))
# f.flush()  #刷新缓存
# f.close()  #关闭
#-----------------------------------------
"""读写模式:对于读写模式,必须是先读,因为默认光标是在开头的,准备读取的,当读完了再写⼊,所以我们以后使⽤频率最⾼的模式就是r+
必须记住:r+模式下,必须是先读取,然后再写⼊"""
# f=open('⼩娃娃',mode='r+',encoding='utf-8')
# ad()
# f.write('美国,上海做买卖')
# print(content)
# f.flush()
# f.close()
'''
------------------------------------------
写读模式(w+,w+b)
先将所有的内容清空,然后写⼊,最后读取,但是读取的内容是空的,不常⽤
'''
# f=open('⼩娃娃',mode='w+',encoding='utf-8')
# f.write('哈哈⽜是谁')
# ad()
# print(content)
# f.flush()
# f.close()
#----------------追加读
#a+模式下,不论先读还是后读都是读取不到数据的
# f=open('⼩娃娃',mode='a+',encoding='utf-8')
# f.write('马化腾')
# ad()
# print(content)
# f.flush()
# f.close()
#b模式:rb,wb,ab  处理⾮⽂本⽂件,mode⾥⾯有b,encoding就不能给了
# f=open('e:/astronaut.jpg',mode='rb')  #这⾥不能写encoding
函数里面可以定义函数吗# s=open('f:/astronaut.jpg',mode='wb')
# for line in f:      #从e盘读取,
#    s.write(line)  #写⼊到f盘
# f.close()
# s.flush()
# s.close()
# r+ 光标在最前⾯
'''
不论你读取了多少内容,光标在哪⾥,写⼊的时候都是在结尾写⼊,除⾮上来就写⼊,这时写⼊是在开头,最好⽤读写同事存在的模式
r+  读写模式,先读后写
w+  写读模式,先写后读
'''
f=open('⼩娃娃',mode='r+',encoding='utf-8')
# ad(3)
# print(s)
# f.write('不养了送⼈')
# f.write('葫芦娃')
ad(2)
print(s)
f.write('⽕箭')
f.flush()
f.close()
1'''
2Python操作⽂件
3到⽂件,打开⽂件 f=open(filename)
4读,写,修改      f.read(100),f.read()读取全部,f.write(yourdate)
5保存 f.close
6
7⽂件打开模式,只能以⼀种模式操作⽂件
8r read
9w write  创建模式
10a append
11'''
12# f=open(file='F:/',mode='w')    #file浏览器      mode模式
13# f.write('Alex, CEO,600\n')
14# f.write('astronaut, CTO,800\n')
15# f.close()
16
17# f=open(file='G:/',mode='r+')
18# f.seek(5)    #seek⾛3个字节光标移动处
nginx最高支持多少并发
19# adline())
20# adline())  #读⼀⾏
21# f.write('美国⼈殴打中国⼈2\n')
22# f.flush()
23# ad())
24# print('-------分隔符--------')
25# ad()  #读取所有
26# print(data)
27
28 f=open(file='F:/install/pychram/test_function/venv/记事本',encoding='utf-8')
29
30# f.write('元帅,湖南,153,52,180********\n')
31# f.write('朱德,荆州,163,50,180********\n')
32# f.write('马云,杭州,143,72,180********\n')
33# f.write('马化腾,郑州,153,32,180********\n')
34# f.write('马超,东北,193,59,180********\n')
35# f.write('黄忠,辽宁,153,62,180********\n')
36# f.write('英国,东北,183,45,180********\n')
37# f.flush()
38#read  readline  readlines之间的区别
39#read
40# ad(3)  #默认参数为空,是打印全部,如果有参数3  就是从但当前位置读3各参数列表
41# print(line)
42# print(type(line))
43
44#readline⽤法
45# adline()    #readline  读取下⼀⾏
46# print(type(line))
47# adline())
48# # while line:
49# #    print(line)
50# #    line = f.readline()
51# f.close()
52
53#readlines⽤法
54# adlines())  #读取整个⽂件到⼀个迭代器⾥⾯,读取到⼀个list⾥⾯
55# adlines()
56# for i in line:
57#    print(i)    #迭代该版本.
58# f.seek(7)        #seek3个字节为⼀个字符⾛多少字节
59# f=open(file='F:/install/pychram/test_function/venv/astronaut',encoding='utf-8',mode='r')
60# f.write('www.baidu\n')
61# f.write('astronaut')
62# f.flush()
63# ll())  #打印读取多少个数据,⽂件指针就向后移动多少个位置
64# print(f.seek()) #函数⽤于将⽂件指针移动⾄指定位置,
65# ad(8))
66# ll())
67'''
68可以看到,当使⽤ open() 函数打开⽂件时,⽂件指针的起始位置为 0,
69表⽰位于⽂件的开头处,当使⽤ read() 函数从⽂件中读取 3 个字符之后,
70⽂件指针同时向后移动了 3 个字符的位置。这就表明,当程序使⽤⽂件对象读写数据时,⽂件指针会⾃动向后移动:
71读写了多少个数据,⽂件指针就⾃动向后移动多少个位置
72
73
74其中,各个参数的含义如下:
75    file:表⽰⽂件对象;
76    whence:作为可选参数,⽤于指定⽂件指针要放置的位置,该参数的参数值有 3 个选择
77:0 代表⽂件头(默认值)、1 代表当前位置、2 代表⽂件尾。
78    offset:表⽰相对于 whence 位置⽂件指针的偏移量,
79正数表⽰向后偏移,负数表⽰向前偏移。例如,当whence == 0 &&offset == 3(即 seek(3,0) ),
80表⽰⽂件指针移动⾄距离⽂件开头处 3 个字符的位置;当whence == 1 &&offset == 5(即 seek(5,1) ),
81表⽰⽂件指针向后移动,移动⾄距离当前位置 5 个字符处。
82f.seek(5,0)⽂件开头
83f.seek(5,1)⽂件当前位置
84f.seek(5,2)⽂件末尾开始
85'''
86# f.close()
87 f=open(file='F:/install/pychram/test_function/venv/astronaut',mode='rb')
88#判断指针的位置
89# ll())
90#读取⼀个字节,⽂件指针⾃动后移⼀个数据
91# ad(3))
92# ll())
93#将⽂件指针从⽂件开头,向右移动到5个字符的位置
94 f.seek(5)    #指针移动到5个字符
ll())
ad(2))  #从光标第五位再读2个字符
表单制作作品总结
97# f.close()
98#将⽂件指针从当前位置,向后移动到 5 个字符的位置 astronautspacestation
99 f.seek(5,1)  #从上次输出结果光标位置开始,再次向右移动5个位置  5(确定光标)+2(再次读2个光标)+5(继续打印5个光标)ll())
ad(1))
102# 将⽂件指针从⽂件结尾,向前移动到距离 2 个字符的位置
103 f.seek(-1, 2)
ll())
ad(1))
混合模式(a+,w+,r+)
'''
w+  写读
r+  读写,能读能写,都是写在⽂件后⾯,跟追加⼀样
'''
#w+
# f=open('write_and_read','w+')
# f.write('hello world1\n')
# f.write('hello world2\n')
# f.write('hello world3\n')
# f.write('hello world4\n')
# f.write('hello world5\n')
# f.seek(0)
# adline())
# f=open('妹⼦的联系⽅式','r+')
# f.write('少妇,上海,172,25,135********\n')
# f.write('学⽣,北京,182,23,135********\n')
# f.write('护⼠,深圳,162,25,135********\n')
# f.write('空,天津,142,22,135********\n')
# f.write('⽩领,洛阳,172,25,135********\n')
# ad())
#r+  追加
# f=open('write_and_read','r+')
# f.write('hello world11\n')
# f.write('hello world21\n')
# f.write('hello world31\n')
# f.write('hello world41\n')tablet screen
# f.write('hello world51\n')
# # f.seek(0)
# adline())
#追加a+
# f=open('write_and_read','a+')
# f.write('hello 11\n')
# f.write('hello 21\n')
# #修改⽂件
# f=open('妹⼦的联系⽅式','r+')
# f.seek(3)
# f.write('astronaut')
#不占内存修改⽂件
f=open('妹⼦的联系⽅式','r')
f_new=open('妹⼦的联系⽅式_new','w')
old_str='洛阳'
new_str='美国'
for line in f:
if'洛阳'in line:
place(old_str,new_str)    #replace替换字符串    f_new.write(line)
f.close()
f_new.close()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。