1,文件操作
1,文件路径:
2,编码方式:utf-8, gbk....
3,操作方式:只读,只写,追加,读写,写读
1,只读 :r rb 不用编码,以什么形式存储就以什么形式读出来
f = open(‘ 文件名‘,mode = ‘r‘,encoding = ‘utf-8‘)
content = f.read()
print(content)
f.close() 必须存在
2,只写:w 没有此文件就会创建,先将源文件的内容全部清除,再写 wb不用编码
3,追加:a
4,读写:r+ 打开文件直接写和读完再写不一样
r+b 读写以byte类型
f = open(‘log‘,mode=‘r+b‘)
print(f.read())
f.write(‘大猛‘,‘小猛‘.encode(‘utf-8‘))
f.close()
f = open(‘log‘,mode=‘a+‘,encoding=‘utf-8‘) f.write(‘时倾‘) count = f.tell() f.seek(count-9) 调光标 print(f.read()) f.close() 功能详解:
f = open(‘log‘,mode=‘r+‘,encoding=‘utf-8‘) content=f.read(3) #读出来的都是字符 f.seek(3) #是按照字节定光标的位置 f.tell() 告诉你光标的位置 print(f.tell()) content = f.read() print(content) f.close() 5,光标---文件指针 seek -- 指定光标移动到某个位置 tell -- 获取光标当前位置 truncate -- 获取文件 6,open() 调用系统命名 replace()替换 import os os.remove() 删除文件 os.rename() 重命名文件 7,其他操作 f.readable() #是否可读 line = f.readline() ###一行一行的读 line = f.raedlines() ###每一行当成列表中的一个元素,添加到list中 l1 = f.truncate() #对源文件进行截取
with open(‘log‘,mode=‘r+‘,encoding=‘utf-8‘) as obj: print(obj.read()) ##自动关闭,不用写close,可以同时打开多个文件
2,注册
username = input(‘请输入你要注册的用户名:‘) password = input(‘请输入你要注册的密码:‘) with open(‘list_of_info‘,mode=‘w‘,encoding=‘utf-8‘) as f: f.write(‘{}\n{}‘.format(username,password)) print(‘恭喜你,注册成功‘) lis = [] i = 0 while i < 3: uname = input(‘请输入你的用户名:‘) pword = input(‘请输入你的密码:‘) with open(‘list_of_info‘, mode=‘r+‘, encoding=‘utf-8‘) as f1: for line in f1: lis.append(line) if uname == lis[0].strip() and pword == lis[1].strip(): print(‘登陆成功‘) break else:print(‘账号和密码错误‘) print(lis) i += 1
3,函数----定义之后,可以在任何需要的地方调用,没有返回值,只是单纯的打印(只定义不调用就一定不执行,先定义后调用)
1,def 函数名(): 自定定义函数只需要0个参数,接收参数,形参
函数体
返回值 = 函数名
ret = 函数名() 传递参数:传参 实参
2,返回值
1).没有返回值----返回None 不写return:函数内代码执行完毕后自动结束 只写return:结束一个函数 return None----不常用 return之后都不执行 2).返回一个值 可以返回任何数据类型 只要返回就可以接受到 如果在一个程序中有多个return,只执行第一个 3).返回多个值 多个返回值用多个变量接收:有多少个返回值就用多少变量接收 用一个变量接收,中间用逗号隔开,得到的是一个元祖 3,参数
没有参数 定义函数和调用函数时括号里都不写内容 有一个参数 传什么是什么 有多个参数 位置参数 4,站在不同角度看参数
站在实参的角度上:调用函数的时候(给一个序列加上*,就是将这序列按照序列打散) 按照位置传参 按照关键字传参 混着用可以,但是必须先按照位置传参,再按照关键字传参 不能给同一个变量传多个值
站在形参角度上:定义函数的时候(给变量加上*,就是组合所有传来的值) 位置参数:必须传,且有几个参数传几个值 *args:动态参数,可以接受任意多个按位置传入的参数 默认参数:可以不传,如果不传就是默认的参数,传了就覆盖 **kwargs:动态参数,可以接受任意多个按照关键字传入的参数
5,参数值 1)只有调用函数的时候 按照位置传参:直接写参数的值 按照关键字: 关键字 = 值
2)定义函数的时候 位置参数:直接定义参数 必须传 默认参数:关键字参数:参数名 = ‘默认的值‘ 动态参数:有可以接受任意多个参数 在参数名之前加*,习惯参数名args,接收的是按照位置传参的值,组成一个元祖 参数名之前加**,习惯参数名kwargs,接收的是按照关键字传参的值,组成一个字典 顺序:必须先定义位置参数,*args,后定义默认参数,**kwargs 6,函数的注释 def func(): 这个函数实现了什么功能 参数1: 参数2: :return: 是字符串或者是列表的长度
原文地址:https://www.cnblogs.com/encounter-you/p/10502705.html
时间: 2024-10-13 12:02:59