python中的文件操作&函数(4)

一、文件操作

IO操作:1.读 2.写

函数的特性: 1.函数有参数 x=f(y)---y是f的参数

open()函数: 干什么的:IO操作文件

参数:

file:指的是被操作的文件,后面跟文件名称,暗含了文件路径

mode:通过什么方式操作文件

a:追加  w:写文件内容 r:读取文件内容  encoding:编码(utf-8,gbk)

写的操作:

1.不管是否有文件,即使没有文件,open内部会自动创建一个文件,然后把写的内容写进去。

读的操作:

1.文件存在,那么从文件中读取数据

2.文件不存在,会报文件不存在,会报FileNotFoundError的错误信息,如[Errno 2] No such file or directory

 

1.打开并写入文件

文件操作三个步骤:

1.打开文件

2.操作文件(针对文件的读和写)

3.关闭文件(文件必须要关闭,要不会出现内存泄漏)

当操作文件占用的内存超过系统本身的内存量就会出现内存泄漏

步骤解读:

f=open(file='login.txt',mode='w')     #代表打开一个login.txt文件,通过写的方式操作
f.write("hello python")               #在文件中写入'hello python'
f.close()                             #关闭文件

 

 

注意:

如果原本文件中有内容,输入mode=“a”,表示追加内容,原本写入的内容还在。

如果原本文件中有内容,输入mode=“w”,会清空原本的内容再写入新的内容,即覆盖原本内容。

如果写入乱码,则在后面加上encoding=utf-8

如下:

 

2.读取文件

打开一个文件,执行读的权限:f=open(’login.txt','r')

读取文件里面所有的内容:print(f.read())

读取文件第一行:print(f.readline())

按行读取文件所有的内容:for item in f.readlines():

print(item.strip())

f.close()

 

 文件操作实战:

需求:在D盘根目录下创建一个文件log.txt,写入一些数据在pycharm控制台输入f=open('D:/log.txt','r'),再按行读取文件内容,输出文件中写入的数据

 

 

 

 

 

3.with上下文:

它内部可以对文件进行关闭,这样避免了操作文件忘记关闭

as f是重命名:f=open('login.txt','r')

写的操作:

 

 读的操作:

 

二.python中的函数

所谓函数,就是把重复的代码单独的分离出来,放在⼀个公共的地⽅,以后可以⼀直的进⾏调⽤,这样就可以解决 多次重复来编写。

函数定义:使用的关键字是def

for example:

def 函数名称(函数的参数):

函数表达式

函数调用:

函数写完后,必须要经过调用才可以生效

调用函数的方式是:函数名称()

def func():
print('hello 世界!')
func()

 

 参数类型:

1.形式参数:函数里面的参数叫形式参数

2.实际参数:函数被调用的时候,给参数赋予的值叫实际参数

参数调用注意事项:

1.函数在调用的时候,可以填写形式参数,也可以不填写

2.要么都填写,要么都不填写

3.函数在调用的时候,填写的实际参数要与形式参数的顺序,个数保持一致。

4.函数有形式参数的时候调用函数必须填写实际参数

 

实战1:

需求:定义一个函数,如果用户名是'lm',密码是'123456',则登录成功,否则登陆失败

def login(username,password):
    if username=="lm" and password=="123456":
        print("登录成功")
    else:
        print("登陆失败")
login('lm','123321')

 

实战2

需求:将用户名和密码写进login.txt文档

def registry():                        #定义一个函数名 registry(登记)
    username=input("请输入用户名:\n")
    password=input("请输入密码:\n")     #输入账户名和密码
    temp=username+','+password         #将用户名和密码写入login.txt,以逗号隔开
    with open('login.txt','w')as f:
        f.write(temp)                  #将用户名和密码写进login.txt文档
registry()                             #代表调用函数

 

 

 实战3

需求:定义一个新的函数名def func():

找到login.txt里面的值

只输出“name”的值

def func():
  with open('login.txt','r') as f:      #对login,txt执行读的权限
    data=f.read().split(',')            #将login.txt里的值用逗号拆分,也就是字符串转为列表
    print(data[0])                      #输出data中的索引为0的值
func()                                  #调用函数

 

 3.默认参数:在定义函数的时候给形式参数指定了参数的值

默认参数注意事项:默认参数要么放在非默认参数的最后一位,要么每个形式参数都加默认参数

调用函数时,如果没有传递参数,则会使用默认参数。

 

4.动态参数:定义一个函数的时候,当函数的形式参数个数不确定,数据类型不确定的时候

*:代表的是元组的数据类型

 

 

 **:代表的是字典的数据类型

 

 动态函数的使用场景:当参数的个数不确定时,不用写多个函数,用一个动态参数就可以解决。

 

posted @ 2022-03-29 17:03  lm970418  阅读(132)  评论(0编辑  收藏  举报