Python自学笔记(8day)

(1)文件功能

  (1)f.read() 按照字符查找

    f.read()中可以加入数字表示查找的范围

f=open("d:\w.txt", mode="r+", encoding="gbk")

print(f.read(3))
f.close()
#输出:前3个字符

          (2)f.seek()  按照字节定位光标位置        utf-8:1个字节表示一个字母,3个字节表示一个中文    

                      gbk:一个字节表示一个字母,2个字节表示一个中文

                      unicode:4个字节表示一个字母,4个字节表示一个中午

#w.txt文件中:宝宝然
f=open("d:\w.txt", mode="r+", encoding="gbk")
f.seek(3)
print(f.read())
f.close()
#输出:宝然

   (3)f.tell()   告诉我光标现在的位置

#w.txt:宝宝然
f=open("d:\w.txt", mode="a+", encoding="gbk")
f.write("是帅哥")   #这时光标在最后位置,我想读取整个内容
count=f.tell(count-18)
print(f.read(f.seek(f.tell(count-18))))
f.close

(2)一般来说我们对文件操作常用     (重要)

with open("d:\w.txt",mode=" ",encoding='  ') as f:
    操作文件

 with :  (1) 可以同时打开多个文件

    (2)会自动关闭文件,不需要f.close()

with open("d:\w.txt",mode=" ",encoding='  ') as f,\
    open("d:\w.txt",mode=" ",encoding='  ') as w:
        操作文件

(3)对于文件中的内容拿出来,用for循环。

with open("d:\w.txt",mode=" ",encoding='  ') as f:
    for line in f:
        print(f.read())

我们还可以将拿出来的内容放到一个空列表中。

 

课后习题

#用户登陆创建用户名密码,写入文件,登陆时通过拿出文件内容比较来登陆。
#涉及:(1)文件操作写入,读取
   (2)循环登陆
username=input("请输入你所注册的用户名") userpassword=input("请输入你所注册的密码") with open("d:\用户名及密码.txt", mode="w+", encoding="gbk") as f: f.write("{}\n{}".format(username,userpassword)) print("注册成功") i=0 list=[] while i<3: name=input("请输入用户名") password=input("请输入用户密码") with open("d:\用户名及密码.txt", mode="r+", encoding="gbk") as f : for line in f : list.append(line) if name==list[0].strip() and password==list[1].strip() : print("登录成功") break else: print("输入错误,请重新输入") i+=1 #3个注意点: #(1)将文件中内容找出来用for循环,将每一行找出来,以字符串形形式,然后比较去掉空格等。 #(2)我们比较是将内容放到列表里,然后比较的,这个是个难点。 #(3)因为将内容放到列表是字符串形式,所以不需要再输入前面加int(),因为密码本身是字符串 # 你输入的数字也是字符串,如果加int()f反而会报错。
# (4)f.write()只能写入一个内容,所以这里用都格式化字符串

 

posted @ 2018-09-12 22:36  诺诺诺亚索隆  阅读(166)  评论(0编辑  收藏  举报