python文件操作补充

文件操作补充

1.flush()
    将内存中的数据立刻刷到硬盘 相当于ctrl+s
2.readable() writeable()
    判断文件是否可读可写
with open(ruserinfo.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(ra.txt,r,encoding=utf8) as f:
    data = f.read()
with open(ra.txt,w,encoding=utf8) as f:
    f.write(data.replace(jason,tony))

方法二:创建一个新文件 将老文件内容写入新文件 过程中完成修改
之后将老文件删除 将新文件命名成老文件 从而达到修改的效果
import os with open(ra.txt,r,encoding=utf8) as f,open(ra.txt.backend,w,encoding=utf8) as f1: for line in f: f1.write(line.replace(tony,jason)) os.remove(ra.txt) os.rename(ra.txt.backend,ra.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(rc.txt,r,encoding=utf8) as f:
            for line in f:
                username1=line.split(|)[0]
            if username == username1:
                print(用户名已被注册)
                continue
            else:
                print(注册成功)
                with open(rc.txt,a,encoding=utf8) as f:
                    f.write(%s|%s\n%(username,password))
                    continue
    elif choice==2:
        print(登陆)
        username2=input(用户名:)
        password2=input(密码:)
        with open(rc.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

 

python文件操作补充

上一篇:数组练习(二):从尾到头打印链表


下一篇:Java默认不支持AES256