不能放过的python函数调用07

本文介绍了Python中的文件操作方法,包括文件的打开、读取、写入及关闭等基本操作,并通过实例演示了如何进行文件读写。同时,文章还详细讲解了函数的定义与调用,展示了多个实用函数的例子,帮助读者掌握Python编程的基础技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、文件操作
1、注意
1、文件必须先打开才能读写
2、对文件读写完成后,应及时关闭文件以释放系统资源
2、文件的打开(open()函数)和关闭(close()函数)
1、打开文件
变量名/对象名f = open("文件名","打开方式")
打开方式:
'r' : 读
'w' : 写
'a' : 追加(只能写)append
2、关闭文件
f.close() 关闭文件,释放系统资源
3、示例
f = open("python.txt",'r')
print("文件python.txt已打开")
f.close()
print("文件python.txt已关闭")
4、常用方法
data = f.readline() 读取一行内容
print(data)
data2 = f.readlines() 返回每行字符串的列表
print(data2)
f.write("字符串") 将字符串类型的数据写入到文件中
f.write("hello tarena\n")
f.writelines(列表) 将列表类型的数据写入到文件中
f.writelines(['hello\n','world\n'])
5、注意
1、readline()和readlines()需要变量名来接收读取出来的数据
2、readline()读取出阿里的为字符串格式,readlines()读取出来的是列表格式
3、writelines(列表)在文件中写入数据,()中必须要给一个列表
6、练习
1、在用户主目录下创建文件myfile.txt,并写入如下内容:
金毛狮王 屠龙刀
灭绝师太 倚天剑

乔峰  降龙十八掌

# f = open("/home/tarena/myfile.txt","w")
# L = ["金毛狮王 屠龙刀\n","灭绝师太 倚天剑\n",
#      "乔峰    降龙十八掌\n"]
# f.writelines(L)
# f.close()

2、以readlines()方法读取文件,将文件内容打印到终端,以正常格式打印
提示:用for循环遍历列表中元素

# f = open("/home/tarena/myfile.txt",'r')
# data = f.readlines()
# for i in data:
#     print(i,end="")
# f.close()
3、在文件末尾追加如下内容:
袁    自带音响
强  绿光
亮  绿光
# f = open("/home/tarena/myfile.txt",'a')
# data = ["袁 自带音响\n","强 绿光\n"]
# f.writelines(data)
# f.close()

4、写一个程序,来实现cp文件功能(复制myfile.txt为myfile2.txt)
提示:先读出来(readline,realines)
再写入myfile2.txt中

f1 = open(...)
...
f1.close()
f2 = open(...)
...

f2.close()

# f1 = open("/home/tarena/myfile.txt",'r')
# L = []
# while True:
#     data = f1.readline()
#     if len(data) == 0:
#         break
#     L.append(data)
# f1.close()


# f2 = open("/home/tarena/myfile3.txt",'w')
# f2.writelines(L)
# f2.close()

2、函数
1、定义
函数是可以重复执行的代码块,可以重复使用
2、语法
def 函数名(参数列表):
   语句块....
3、调用
函数名(参数列表)
4、示例

1、定义一个函数star,调用时输出20个 *

# def star(n):
#     print("*" * n)


# star(1)
# star(3)
# star(5)
# star(7)
# star(9)

# star(20)



2、写一个函数oushu,传入一个参数n代表终止整数,打印 
2 4 6 8 10 ... n的所有偶数(用for和while两种方法)
def oushu(n):

  ... ... 

# def oushu(n):
#     for i in range(2,n+1,2):
#         print(i,end=" ")
#     print()


# # while循环
# def oushu2(n):
#     i = 2
#     while i <= n:
#         print(i,end=" ")
#         i += 2
#     print()


# oushu(29)

# oushu2(29)


3、定义一个函数mysum(n),打印1+2+3+...+n的和

# def mysum(n):
#     i = 1
#     s = 0
#     while i <= n:
#         s += i
#         i += 1
#     print("和为:%d" % s)
# mysum(5)
# mysum(10)

3、return语句
1、语法
return 值
2、如果函数中没有return语句,则会默认添加 return None
3、练习

1、写一个函数,来获取两个整数中的最大值

# def mymax(m,n):
#     if m > n:
#         return m # 只要遇到了return语句则函数结束
#     return n


# print(mymax(66,88))

2、写一个函数,来获取三个整数中的最大值

# def mymax2(m,n,k):
#     if m > n and m > k:
#         return m
#     elif n > m and n > k:
#         return n
#     return k
# print(mymax2(5,50,10))


# def mymax3(a,b,c):
#     maxn = a
#     if b > maxn:
#         maxn = b


#     if c > maxn:
#         maxn = c


#     return maxn




# print(mymax2(5,50,10))

3、随机生成n位密码的程序(默认为8位)
import random
import string
def randompass(n=8):
 all_chars = string.digits + string.ascii_letters + "_"
...


return ...
验证:
print(randompass())

print(randompass(6))

# import random
# import string


# def randompass(n=8):
#     all_chars = string.ascii_letters + \
#                 string.digits + "_"
#     pwd = ""
#     for i in range(n): # 只是控制循环次数,i可用可不用
#         char = random.choice(all_chars)
#         pwd += char
#     return pwd


# def r():


# print(randompass())
# print(randompass(6))
 

(0)石头
(1)剪刀
(q)退出
请选择:Q 
if choice.strip().lower() == "q":
break
4、编写一个函数来实现文件复制功能
def copyfile(srcf,dstf):
f1 = open(...)
f2 = open(...)
读取f1写入f2

copyfile("/home/tarena/myfile.txt","/home/tarena/AID1803/myfile2.txt")

# def copyfile(srcf,dstf):
#     f1 = open(srcf,'r')
#     f2 = open(dstf,'w')


#     L = []
#     while True:
#         data = f1.readline()
#         if len(data) == 0:
#             break
#         L.append(data)
#     f2.writelines(L)


#     f1.close()
#     f2.close()



# # copyfile("/home/tarena/myfile.txt",
# #          "/home/tarena/AID1803/myfile2.txt")
# copyfile("/home/tarena/AID1803/myfile2.txt",

#          "/home/tarena/AAA.txt")

作业:
1、利用函数形式实现创建文件并直接在文件中写入内容
函数调用开始:
>>>第一行内容
>>>第二行内容
>>>...
>>>q


获取终端输入的内容
def get_contents():
L = []
while True:
... input...
...
将内容写入文件
def mkfile(fname,contents):
...open...
... ...

验证:
contents = get_contents()

mkfile("文件名",contents)

# def get_contents():
#     L = []
#     while True:
#         line = input(">>> ")
#         if line == "quit":
#             break
#         L.append(line + "\n")
#     return L


# def mkfile(fname,contents):
#     f = open(fname,'w')
#     f.writelines(contents)
#     f.close()


# contents = get_contents()
# mkfile("/home/tarena/好诗.txt",contents)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值