11-25-day07-python入门-文件的修改和函数的定义

本文详细介绍了Python中的文件操作,包括读写模式、文件指针移动、文件修改的方法,以及两种不同的文件修改策略。此外,还讨论了函数的概念、使用函数的好处、函数的定义与调用,包括无参、有参和空函数的定义,以及函数调用的多种形式和返回值的处理。
摘要由CSDN通过智能技术生成

一:文件的读写操作方法
即w+,r+,a+,即可让文件具有除了本身之外的一些功能

with open('a.txt',mode='r+t',encoding='utf-8') as f:
    print(f.read())
    print(f.writable())
    print(f.readable())
    f.write("chishiba")

二:文件操作的其他方法
读操作
readline
readlines

with open('a.txt',mode='rt',encoding='utf-8') as f:
    line1=f.readline()
    print(line1)
    line2 = f.readline()
    print(line2)

    for line in f:
        print(line)

    lines=f.readlines()
    print(lines)

写操作

with open('a.txt',mode='wt',encoding='utf-8') as f:
   f.write("1111\n222\n333\n")

   for x in "hello":
       f.write(x)

   f.writelines("hello")  # f.write("hello")

   f.writelines(["1111","222","333"])

   f.flush()
   print(f.name)
   print(f.encoding)

三:文件指针移动
前提:文件内的指针移动,除了t模式下的read(n)中n代表的是字符个数,其余的指针移动都是以bytes为单位的
(其中英文字母占1个bytes,中文字符占3个bytes)

with open('a.txt',mode="rt",encoding="utf-8") as f:
	    res=f.read(6)
	    print(res)

2.with open(‘a.txt’,mode=‘rb’) as f:
res=f.read(10)
print(res)
print(res.decode(‘utf-8’))
3.切断
with open(‘a.txt’,mode=‘r+t’,encoding=‘utf-8’) as f:
f.truncate(10)

f.seek(移动的字节个数,模式)

三种模式
0:参照文件开头移动指针
1:参照当前所在的位置移动指针
2:参照文件末尾位置移动指针

只有0模式可以在t下使用,其中1和2只能在b下使用
with open(‘a.txt’,mode=‘a+b’) as f:
f.seek(0,2)
print(f.tell())

with open(‘a.txt’,mode=‘a+b’) as f:
f.seek(-6,2)
print(f.read().decode(‘utf-8’))

print(f.read(3).decode('utf-8'))

四:文件修改
方式一:
1.以r模式打开源文件,将源文件内容全部读入内存
2,然后在内存中修改完毕
3.以w模式打开源文件,将修改后的内容写入源文件

优点:无须硬盘预留足够的空间
缺点:需要内存有足够的空间

with open(‘a.txt’,mode=‘rt’,encoding=“utf-8”) as src_f:
byd=src_f.read()
res=byd.replace(“歪歪”,“歪尼马呢”)

with open(“a.txt”,mode=“wt”,encoding=“utf-8”) as dst_f:
dst_f.write(res)
方式二:
1.以r模式打开源文件,然后以w模式打开一个临时文件
2.从源文件中读一行到内存中,修改完毕后直接写入临时文件,循环往复,直到操作完所有行
3.删除源文件,将临时文件名改为源文件名
优点:没有对内存造成过度占用
缺点:需要硬盘预留出足够的空间来放临时文件
import os
with open (“a.txt”,mode=“rt”,encoding=“utf-8”) as src_f,
open(’.a.txt.swap’,mode=‘wt’,encoding=“utf-8”) as dst_f:
for line in src_f:
dst_f.write(line.replace(“歪”,“我永迪”))
os.remove(‘a.txt’)
os.rename(’.a.txt.swap’,‘a.txt’)

五:函数
1.什么是函数
函数使用来盛放代码的容器

具备某一功能的工具------------》函数
事先准备好工具的过程------------》函数的定义
遇到应用场景,拿来就用--------------》函数的调用

2.为何要用函数
解决问题
1.可读性差
2.拓展性差

3.如何用函数
原则:先定义,后调用

(一)基本使用:
def say_hello():
print("----------")
print(“hello world”)
print("-------")
say_hello()
(二)函数的定义阶段与调用阶段发生的事情
函数定义阶段:只检测语法,不执行代码
函数调用阶段:执行函数体代码
(三)函数定义的完整语法
‘’’
def 函数名(参数1,参数2,参数3,…):
“”"
注释信息
“”"
代码1
代码2
代码3
return 返回值
‘’’
3.1函数定义的三种形式
无参函数
def f1():
print(“hello1”)
print(“hello2”) print(“hello3”)

f1()

有参函数
def f2(x,y): # x=111 y=222
print(x)
print(y)

f2(111,222)

空函数
def login():
pass

def transfer():
pass
:pass是占位符

3.2函数调用的三种形式
(1)语句形式
len(“hello”)
(2)表达式形式
res=len(“hello”) + 10
print(res)
(3)函数调用可以当做一个参数传给另外一个函数
print(add(5,5))

res=add(add(1,2),3)
print(res)
(四)函数的返回值------------》函数的产品
return 的作用1:控制返回值
(1)没有return---------》默认返回值是None
def func():
print(1111)

res=func()
print(res)
(2) return 值:返回就是那一个值
def max2(x,y):
if x > y:
return x
else:
return y

(3) return 值1,值2,值3: 返回的是一个元组
def func():
return [11,22],2,3

res=func()
print(res,type(res))

return的作用2: 函数内可以有多个return,但只要执行一个就会立即终止函数的运行,并且会将return后的值当做本次调用的产品返回
def func():
print(1111)
return 2222312313123123
print(2222)
return
print(3333)

res=func()
print(res)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值