python文件操作补充

文件操作补充

1.flush()
    将内存中的数据立刻刷到硬盘 相当于ctrl+s
2.readable() writeable()
    判断文件是否可读可写
with open(r'userinfo.txt','a',encoding='utf8') as f:
    print(f.readable())  # True
    print(f.writable())  # False
3.writelines()
    括号内放列表 多个元素都会被依次写入

光标移动

seek可以控制光标移动

  seek(offset,whence)

    offset用来控制移动的位数(可以是负数,正数表示向后移动后几位,负数表示向前移动几位)

    whence是操作模式:

      0:从文件开头开始移动

      (既可以用在文本模式也可以用在二进制模式)

      1:从光标当前位置开始移动

      (只可以在二进制模式下使用)

      2:从文件末尾开始移动

      (只可以在二进制模式下使用)

    二进制状态下移动的是字节数,utf8状态下:英文1字节,中文3字节

文件修改

方法一:用新的内容把原来的内容覆盖掉
with open(r'a.txt','r',encoding='utf8') as f:
    data = f.read()
with open(r'a.txt','w',encoding='utf8') as f:
    f.write(data.replace('jason','tony'))

方法二:创建一个新文件 将老文件内容写入新文件 过程中完成修改
之后将老文件删除 将新文件命名成老文件 从而达到修改的效果
import os with open(r'a.txt','r',encoding='utf8') as f,open(r'a.txt.backend','w',encoding='utf8') as f1: for line in f: f1.write(line.replace('tony','jason')) os.remove(r'a.txt') os.rename(r'a.txt.backend',r'a.txt')

函数

函数就相当于是工具
    提前定义好后续可以反复使用,避免了代码冗余的情况
        eg:修理工需要用扳手,买了扳手之后就可以一直用,不用每次都买一把
函数的语法结构
    def 函数名(参数1,参数2):
        '''函数的注释'''
        函数体代码
        return 函数的返回值
1.def
    定义函数的关键字
2.函数名
    函数名的命名与变量名保持一致 见名知意
3.参数
    函数在使用之前还可以接收外部传入的参数
4.函数的注释
    类似于产品说明书
5.函数体代码
    整个函数主要功能逻辑 是整个函数的核心
6.return
    执行完函数之后可以给调用者一个反馈结果

函数的基本使用
    函数的使用一定要先定义后使用!!!
如果在函数的代码前使用了该函数会报错
def get_info():
print(123)

get_info()

get_info()就等于def get_info():后面的代码,即print(123)

 登录界面

while True:
    choice=input('注册1/登陆2:')
    if choice=='1':
        print('注册')
        username=input('用户名:')
        password=input('密码:')
        with open(r'c.txt','r',encoding='utf8') as f:
            for line in f:
                username1=line.split('|')[0]
            if username == username1:
                print('用户名已被注册')
                continue
            else:
                print('注册成功')
                with open(r'c.txt','a',encoding='utf8') as f:
                    f.write('%s|%s\n'%(username,password))
                    continue
    elif choice=='2':
        print('登陆')
        username2=input('用户名:')
        password2=input('密码:')
        with open(r'c.txt','r',encoding='utf8') as f:
            for line in f:
                username1,password1=line.split('|')
                if username1==username2 and password1.strip('\n')==password2:
                    print('登陆成功')
                    break
            else:
                print('用户名或密码错误')
    else:
        print('?')
        continue

 

posted @ 2021-08-17 19:36  雾雨黑白  阅读(52)  评论(0编辑  收藏  举报