python基础学习6
文件读写操作
只读
只读模式用r表示,即
with open('a.txt', 'r', encoding='utf-8') as file: file.read()
如果路径下没有这个文件,就会报错。
只写
只写模式用w表示,即
with open('ab.txt', 'w', encoding='utf-8') as wf, \ open('a.txt', 'r', encoding='utf-8')as rf: r1 = rf.read() wf.write(r1)
# 新建了一个ab.txt文件,并将a.txt中的内容写到ab.txt中
如果路径下没有这个文件,会创建一个新文件,如果有该文件,就会清空文件内容,然后再写入新内容。
只追加
只追加模式用a表示
with open('a.txt', 'a', encoding='utf-8')as af: af.write('1233211234567')
如果路径下没有这个文件,会创建一个新文件,如果有该文件,不会清空文件内容,会在文件内容的末尾继续写入新的内容。
操作模式
t模式
t模式也就是文本模式,通常文件默认就是t模式
rt,只读模式:
open(r'a.txt', 'rt', encoding='utf8')
wt,只写模式:
open(r'a.txt', 'wt', encoding='utf8')
at,追加模式:
open(r'a.txt', 'at', encoding='utf8')
特点:
1.该模式只能操作文本文件,如果换成.png或.mp4等其他文件则会出错
2.读写都是以字符串为单位
3.必须要加encoding参数

b模式
b模式也叫二进制模式
rb,只读模式:
open(r'a.txt', 'rb')
wb,只写模式:
open(r'a.txt', 'wb')
ab,只追加模式:
open(r'a.txt', 'ab')
特点:
1.该模式可以操作任意类型的文件
2.读写都是以bytes为单位
3.一定不能加encoding参数

文件的修改、重命名
import os
# 导入os模块,该模块为pycharm自带 with open(r'abc.txt', 'r', encoding='utf8') as read_f, \ open(r'c.aka.txt', 'w', encoding='utf8') as write_f: for line in read_f: # 修改
write_f.write(line.replace('cccccccc', '8C'))
# replace(a,b) a是需要被替换的内容,b是要替换上去的内容
os.remove(r'abc.txt') # 删除文件
# 重命名
os.rename(r'c.aka.txt', r'c.txt')
# os.rename(a,b) a是要被改名的文件,b是想要的文件名
编码与解码
解码使用decode完成

编码使用encode完成

函数
函数是一个封装好,能重复实现一个或相关功能的代码块。
如果你想要一个满足你需求的功能函数,可以按以下方式操作:
使用 def + 函数名()的形式,首先定义一个函数,括号里放的是自变量和传入参数;
然后根据需求写代码段,也是函数的主体部分,可以写一下函数的注释;
最后使用return返回值,可写可不写,如果不写,默认返回none;
写了return,return后面是什么就返回什么,多个元素的话会自动组织成元组返回。
def max(a, b): if a > b: return a else: return b a = 4 b = 5 print(max(a, b))
函数的简单调用
此时在同一个文件夹下有两个.py文件,分别是main.py和user.py
在user中写入函数的逻辑主体
def auth_login(): username = input('输入用户名:') password = input('输入密码:') if username == 'jyb' and password == '123': print('登录成功') else: print('登录失败')
此时在main中可以对函数进行调用
import user # 导入函数所在文件
user.auth_login() # 开始调用
如法炮制,就可以其他的py文件中反复地调用这个函数功能,但是只能在同一文件夹才能这么用,
不同文件夹的调用,需要使用 from
from users import user # 此时user.py文件在我新建的users文件夹下 user.auth_login() # 开始调用
1、函数必须先定义之后才能使用。
2、函数在定义阶段只识别语法不执行函数体代码,只有在调用函数的时候才会执行。
位置参数,有几个就传几个,多了不行少了也不行,传值的时候就是按照前后顺序给形参赋值。
注意:关键字参数必须写在位置参数的后面,并且一个形参只能赋值一次,否则会报错。
def index(x, y):
print(x, y)
index(y=22,11) # 关键字参数必须写在位置参数的后面
index(11, x=66) # 一个形参只能赋值一次
在函数的定义阶段就给形参赋值了,就称之为默认参数,在用户不传该参数的时候,直接用默认值,用户要是传了参数,还是用用户传的那个。

可变长参数也叫做不定长参数,我们需要这样一个函数能够处理比当初声明时更多的参数,使用可变长参数,那么无论接受多少的位置参数和关键字参数都可以正常运行。
def index(*x, **y): # *表示参数会以元组的形式导入,存放所有未命名的变量参数;加了**的参数则会以字典的形式导入。 print(x, y) index() index(1, 2, 3) index(x=1, y=2, z=3) index(1, 2, 3, x=1, y=2, z=3)




浙公网安备 33010602011771号