云技术在网站建设中的应用,莱芜在线论坛莱芜话题秦立奉,滁州市建设银行网站,网站建设技术支持方案1.文件的打开 open(filename[,mode[,buffering]]) #这个一定要记得关文件。close.() filename,要以路径的形式展示#xff0c;比如在c:\中#xff0c;则要这样写: rc:\filename 如果不用路径展示#xff0c;那就用filename.其会在执行文件所在的文件夹进行搜索… 1.文件的打开 open(filename[,mode[,buffering]]) #这个一定要记得关文件。close.() filename,要以路径的形式展示比如在c:\中则要这样写: rc:\filename 如果不用路径展示那就用filename.其会在执行文件所在的文件夹进行搜索。 mode的格式有几种 ‘r’, read, 读取模式 w’, write,写入模式 a, add, 添加模式 , 读/写模式 b, 二进制模式注意‘rb’参数可以用来读取二进制文件 主要使用的模式是前面三种。 buffering是缓冲参数为0, 1以及大于1的数字和-1。 0表示不用缓冲直接读写硬盘 1表示启用缓冲即内存 大于1的数字表示缓冲的大小(单位是字节 -1表示默认的缓冲大小。 with open(filename) as file_object: #这种方式可以自己关文件但是后续有关在文件运作的内容都要是在其下一级。但是赋值出来后的结果可以稳定的。 with open(re:\first week\username.txt,r) as f: for i in range(2): r_username The %s username is %s%(i,f.readline()) print(r_username)print(r_username) 结果如下 The 0 username is zhangyixiao The 1 username is yingkuqiThe 1 username is yingkuqi 2.读 首先打开文件后如 f open(filename,r) #使用了名为f的对象来调用不用好像不能调用然后使用r模式(ps可以省略因为是默认的 f.read(n) # n,表示读取多少字符如果没有n就表示把之前未读取的全部读取出来。 f.readlines() #这个是读取出所有行,输出的结果会是一个列表每一行作为一个元素存储在里面。 f.readline(n) # n 表示可以读取的字符数目的最大值从0开始没有写表示按次序来。 如果要消除尾部的换行符\n可以在后面加上rstrip.() 如 f.readline().rstrip() $$一定要记住这个readreadinesreadline的功能中如果之前有读取过的它就不再读取了。包括使用readlines,read,readline进行读取的内容 如果想要读取特定某一行可以利用 一个指针以及for i in range(n)的结构来实现 password input(Please enter your password:)passwd open(re:\first week\passwd.txt, r) for l in range(2): #l作为指针指示第几行 passwd_buffer passwd.readline().rstrip() if l j: #如果l与登录用户的顺序j一致则进入之后的判断 if password passwd_buffer: print(yes,%s is in!% username) break else: print(Your password is wrong!) count 1 with open(re:\first week\passwd.txt, r) as file_pass:for i in range(2):print(file_pass.readline())#打开文件赋值给内存中的一个值然后操作会自动关闭
with open(re:\first week\song.txt, r) as test:#print(test.read()) #读取for i in range(10):print(%i: % i, test.readline()) # 这个形式就是反复执行几次readline是按照行一个个执行的之前读取过的不会再读取print(test print, test.readline())test2 test.readlines().copy() #全部读取,输出的结果是一个列表,之前读取过的不会再读取print(test2)#打印出文件中的每一行for line in test2: #这样line代表列表中的每一个元素就是一行输出就是每一行的信息print(line.strip()) #strip可以取出空格和换行print(测试是否会自动关闭test, test) #会自动关闭的
#换一个形式就可以解决之前读取过的数据不能读取的问题
#采用利用readlines再进行浅copy就可以方便进行各种的操作
#但是会出现一个新的变量且不会自动关闭这样就占用了更多的内存可以用del来释放变量
with open(re:\first week\song.txt, r) as test0:test test0.readlines().copy() #把这个文件的东西作为列表复制出来# print(test.read()) #读取for i in range(10):print(%i: % i, test[i].strip()) # 这个形式就是反复执行几次readline是按照行一个个执行的之前读取过的不会再读取print(test print, test)test2 test0.readlines().copy() # 因为之前已经读取过了,所以输出的结果空的列表print(test2)# 打印出文件中的每一行for line in test: # 这样line代表列表中的每一个元素就是一行输出就是每一行的信息print(line.strip()) # strip可以取出空格和换行print(测试是否会自动关闭test, test) #不会自动关闭这样就占用了较多的内存了。但是通过del去除变量就可以释放了
del test #但是通过del去除变量就可以释放了
#尝试使用enumerate来判定读取的是哪一行数据
with open(re:\first week\song.txt, r) as test:for index, line in enumerate(test):if index 9:print(The 10th line is:, line)print(测试是否会自动关闭test, test) # 但是重新利用文件的赋值方式进行赋值之后就可以关闭。不过要尽量避免这样的情况出现。 3.写简单的格式是with open(filename,w) as file: file.write(contents)在w的打开方式下如果目录里面没有这个文件这个文件会被创建如果有就会被覆盖所以仔细考虑用a还是用w‘a’模式下不会覆盖只会添加,但是这个模式不能读取的如果要写入多行数据可以采用的形式是 with open(filename,w) as file: file.write(contents\n) file.write(contents\n) 4.其他一个break只能跳出当前的一个for循环或者while循环转载于:https://www.cnblogs.com/Ian-learning/p/7707135.html