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、函数在定义阶段只识别语法不执行函数体代码,只有在调用函数的时候才会执行。

 

参数

参数分为形参和实参

形参就是在定义函数的时候,括号里写的变量名称,index(a,b),a、b就是形参;

实参就是在调用函数的时候,括号里写的真实数据,index(1,2),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)

 

posted @ 2021-07-16 21:27  wddwyw  阅读(59)  评论(0)    收藏  举报