博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
os模块习题
阅读量:5086 次
发布时间:2019-06-13

本文共 2888 字,大约阅读时间需要 9 分钟。

os

1.使用python代码统计一个文件夹中所有文件的总大小

1 import os 2 def func(path):     3     size_sum = 0#文件总大小为0 4     name_lst = os.listdir(path)#拿到这个文件夹下所有文件夹和文件 5     for name in name_lst: 6         path_abs = os.path.join(path,name)#将每个文件拼接为目录 7         if os.path.isdir(path_abs):#如果是文件夹 8             size = func(path_abs)#继续打开这个文件 9             size_sum += size10         else:11             size_sum += os.path.getsize(path_abs)#是文件就取大小12     return size_sum13 14 ret = func(path')15 print(ret)

2.写一个函数,接收一个参数,如果是文件,就执行这个文件,如果是文件夹,就执行这个文件夹下的所有py文件

1 import os 2 def func(path):#接收文件路径 3     if os.path.isfile(path) and path.endswith(".py"):#如果这个路径是文件且是以.py为结尾(是个py文件) 4         os.system("python %s"% path)#执行这个文件 5     elif os.path.isdir(path):#如果这个路径是文件夹 6         for name in os.listdir(path):#取这个文件夹下的每个子目录 7             abs_path = os.path.join(path,name)#将每个子目录拼接路径 8             if abs_path.endswith(".py"):#如果这个子目录是以.py为结尾 9                 os.system("python %s"% ans_path)#执行这个文件10 func(path)

3.写一个copy函数,接收两个参数,第一个参数是源文件的位置,第二个参数是目标位置,将源文件copy到目标位置,还需要判断一下这个文件之前是否存在

1 import os 2 def copy(path1,path2) 3     filename = os.path.basename(path1)#拿出这个文件的名字 4     if os.path.isfile(path1) and os.path.isdir(path2):#如果path1这个路径是文件而且path2这个路径是文件夹 5         if os.path.exists(path):#如果这个文件名已存在 6             print("已有同名文件") 7         with open(path1,"rb") as f1,open(os.path.join(path2,filename),""wb"") as f2:#以读的方式打开path1,以写的方式打开path2 8             content = f1.read()#读path1的文件 9             f2.write(content)#写入path210 copy(path1,path2)

 

4.获取某个文件所在目录的上一级目录

1 path1 = os.path.dirname(path)2 base_name = os.path.basename(path1)3 print(base_name)

可以合并为

1 base_name = os.path.basename(os.path.dirname(path))2 print(base_name)

5.写一个用户注册登录的程序,每一个用户的注册都要把用户名和密码用字典的格式写入文件userinfo,在登录的时候,再从文件中读取信息进行验证

1 import pickle 2 #注册 3 def register(): 4     user = input("username:") 5     pwd = input("password:") 6     dic = {
"username":user,"password":pwd} 7 with open("userinfo","ab") as f: 8 pickle.dump(dic,f) 9 10 #登录11 def login():12 flag = True13 user = input("username:")14 pwd = input("password:")15 with open("userinfo","rb") as f:16 while flag:17 try:18 dic = pickle.load(f)19 if user == dic["username"] and pwd == dic["password"]:20 print("登录成功")21 flag = False22 break23 except EOFError:24 print("登录失败")25 break26 register()27 login()

6.发红包

1 import random 2 def red_packet(money,num): 3     money = money*100 4     ret = random.sample(range(1,money),num - 1) 5     ret.sort() 6     ret.insert(0,0) 7     ret.append(money) 8     for i in range(len(ret)-1): 9         yield(ret[i+1]-ret[i])/10010 res = red_packet(200,10)11 for money in res:12     print(money)

 

转载于:https://www.cnblogs.com/s593941/p/9520349.html

你可能感兴趣的文章
QML学习笔记之一
查看>>
App右上角数字
查看>>
从.NET中委托写法的演变谈开去(上):委托与匿名方法
查看>>
小算法
查看>>
201521123024 《java程序设计》 第12周学习总结
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
IdentityServer4-用EF配置Client(一)
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
IOS-图片操作集合
查看>>
IO—》Properties类&序列化流与反序列化流
查看>>
测试计划
查看>>
Mysql与Oracle 的对比
查看>>
jquery实现限制textarea输入字数
查看>>
Codeforces 719B Anatoly and Cockroaches
查看>>