os模块习题
os
1.使用python代码统计一个文件夹中所有文件的总大小
import os
def func(path):
size_sum = 0#文件总大小为0
name_lst = os.listdir(path)#拿到这个文件夹下所有文件夹和文件
for name in name_lst:
path_abs = os.path.join(path,name)#将每个文件拼接为目录
if os.path.isdir(path_abs):#如果是文件夹
size = func(path_abs)#继续打开这个文件
size_sum += size
else:
size_sum += os.path.getsize(path_abs)#是文件就取大小
return size_sum ret = func(path')
print(ret)
2.写一个函数,接收一个参数,如果是文件,就执行这个文件,如果是文件夹,就执行这个文件夹下的所有py文件
import os
def func(path):#接收文件路径
if os.path.isfile(path) and path.endswith(".py"):#如果这个路径是文件且是以.py为结尾(是个py文件)
os.system("python %s"% path)#执行这个文件
elif os.path.isdir(path):#如果这个路径是文件夹
for name in os.listdir(path):#取这个文件夹下的每个子目录
abs_path = os.path.join(path,name)#将每个子目录拼接路径
if abs_path.endswith(".py"):#如果这个子目录是以.py为结尾
os.system("python %s"% ans_path)#执行这个文件
func(path)
3.写一个copy函数,接收两个参数,第一个参数是源文件的位置,第二个参数是目标位置,将源文件copy到目标位置,还需要判断一下这个文件之前是否存在
import os
def copy(path1,path2)
filename = os.path.basename(path1)#拿出这个文件的名字
if os.path.isfile(path1) and os.path.isdir(path2):#如果path1这个路径是文件而且path2这个路径是文件夹
if os.path.exists(path):#如果这个文件名已存在
print("已有同名文件")
with open(path1,"rb") as f1,open(os.path.join(path2,filename),""wb"") as f2:#以读的方式打开path1,以写的方式打开path2
content = f1.read()#读path1的文件
f2.write(content)#写入path2
copy(path1,path2)
4.获取某个文件所在目录的上一级目录
path1 = os.path.dirname(path)
base_name = os.path.basename(path1)
print(base_name)
可以合并为
base_name = os.path.basename(os.path.dirname(path))
print(base_name)
5.写一个用户注册登录的程序,每一个用户的注册都要把用户名和密码用字典的格式写入文件userinfo,在登录的时候,再从文件中读取信息进行验证
import pickle
#注册
def register():
user = input("username:")
pwd = input("password:")
dic = {"username":user,"password":pwd}
with open("userinfo","ab") as f:
pickle.dump(dic,f) #登录
def login():
flag = True
user = input("username:")
pwd = input("password:")
with open("userinfo","rb") as f:
while flag:
try:
dic = pickle.load(f)
if user == dic["username"] and pwd == dic["password"]:
print("登录成功")
flag = False
break
except EOFError:
print("登录失败")
break
register()
login()
6.发红包
import random
def red_packet(money,num):
money = money*100
ret = random.sample(range(1,money),num - 1)
ret.sort()
ret.insert(0,0)
ret.append(money)
for i in range(len(ret)-1):
yield(ret[i+1]-ret[i])/100
res = red_packet(200,10)
for money in res:
print(money)
os模块习题的更多相关文章
- Node.js:OS模块
os模块,可以用来获取操作系统相关的信息和机器物理信息,例如操作系统平台,内核,cpu架构,内存,cpu,网卡等信息. 使用如下所示: const os = require('os'); var de ...
- Python OS模块常用函数说明
Python的标准库中的os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Wi ...
- Python 模块学习:os模块
一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台 ...
- os 模块
__file__获取当前模块所在路径 一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的. 二.常用方法 1.os.name 输 ...
- python之OS模块详解
python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...
- sys,os,模块-正则表达式
# *__conding:utf-8__* """"我是注释""" sys,os模块 import sysimport os pr ...
- python os模块(2)
os模块主要用于:目录.文件(删除.判断.分割文件名和后缀) 目录 (1)获取当前目录(2)修改目录(3)生成目录(4)删除目录(5)查看目录下的内容(6)重命名目录(7)修改时间属性(8)链接目录( ...
- 初学Python之os模块
OS模块是一个系统操作模块,是对本机的一些操作 os.name 显示操作系统,window:nt ,Linux/Unix:posix. os.getcwd() 显示运行的工作路径 os.list ...
- sys模块和os模块,利用sys模块生成进度条
sys模块import sysprint(sys.argv)#sys.exit(0) #退出程序,正常退出exit(0)print(sys.version) #获取 ...
随机推荐
- redis INFO 解释
以一种易于解释(parse)且易于阅读的格式,返回关于 Redis 服务器的各种信息和统计数值. 通过给定可选的参数 section ,可以让命令只返回某一部分的信息: server 部分记录了 Re ...
- ASP.NET MVC3在Visual Studio 2010中的变化
在VS2010中新建一个MVC3项目可以看出与以往的MVC2发生了很明显的变化 1.ASP.NET MVC3必要的运行环境为.NET 4.0 (想在3.5用MVC3,没门!) 2.默认MVC3模板项目 ...
- 使用豆瓣的pip源安装python模块
1.指定豆瓣pip源安装Django pip install -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com ...
- AppBoxFuture: 大数据表分区的3种策略
之前的文章"分而治之"在介绍大表分区时,作者尚未实现不同的分区策略,即只能按指定的分区键进行分区.这次作者完善了一下分区策略,在规划大表分区时可以按Hash或者时间范围进行分区 ...
- MySQL的登录与退出以及MySQL的目录结构
一.MySQL的登录 1.利用语句mysql -uroot -proot 同时如果密码不想让别人看到,可以在-p处直接回车,再输入密码就是加密的了 2.远程登录 以连接本地为例 此处涉及到localh ...
- Docker启动一个Centos镜像,在docker中安装ifconfig和ssh
执行docker search centos 现在最流行的Linux嘛.查了下,排名第一的(STARS最多1882)官方版,就是你了 果断拿下, docker pull centos,看网速了静等拿下 ...
- putty秘钥转换成xhell支持的格式
使用XShell导入KEY的时候报“Failed to import the user key!”错误 这个错误表明导入的private key文件不是XShell所支持的,有三种可能: 将Publi ...
- 【koa2基础框架封装】基于Proxy路由按需加载器和初始加载器
我们在使用koa2做路由拦截后一般都习惯于直接将查找对应处理函数的过程映射到项目的文件夹目录,如: router.get('/test', app.controller.index.test); ap ...
- black box黑盒测试
软件规格说明书 等价类划分,完备性,无冗余性(不能有交集). 健壮等价类:无效等价类 边界值分析,对于一个含有n个变量的程序,采用边界值分析法测试程序会产生4n+1个测试用例 ...
- HDU 5527:Too Rich(DFS+贪心)***
题目链接 题意 给出p块钱,现在要用十种硬币凑出,每种硬币有c[i]个,问最多能用多少个硬币. 思路 首先确定,对于每个硬币就是能用小的替换就不用大的. 所以,可以先把硬币尽量用小的替换,如果小的不够 ...