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模块习题的更多相关文章

  1. Node.js:OS模块

    os模块,可以用来获取操作系统相关的信息和机器物理信息,例如操作系统平台,内核,cpu架构,内存,cpu,网卡等信息. 使用如下所示: const os = require('os'); var de ...

  2. Python OS模块常用函数说明

    Python的标准库中的os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Wi ...

  3. Python 模块学习:os模块

    一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台 ...

  4. os 模块

    __file__获取当前模块所在路径 一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的. 二.常用方法 1.os.name 输 ...

  5. python之OS模块详解

    python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...

  6. sys,os,模块-正则表达式

    # *__conding:utf-8__* """"我是注释""" sys,os模块 import sysimport os pr ...

  7. python os模块(2)

    os模块主要用于:目录.文件(删除.判断.分割文件名和后缀) 目录 (1)获取当前目录(2)修改目录(3)生成目录(4)删除目录(5)查看目录下的内容(6)重命名目录(7)修改时间属性(8)链接目录( ...

  8. 初学Python之os模块

    OS模块是一个系统操作模块,是对本机的一些操作 os.name   显示操作系统,window:nt ,Linux/Unix:posix. os.getcwd()  显示运行的工作路径 os.list ...

  9. sys模块和os模块,利用sys模块生成进度条

    sys模块import sysprint(sys.argv)#sys.exit(0)             #退出程序,正常退出exit(0)print(sys.version)       #获取 ...

随机推荐

  1. 可视化流程设计——流程设计器演示(基于Silverlight)

    上一篇文章<通用流程设计>对鄙人写的通用流程做了一定的介绍,并奉上了相关源码.但一个好的流程设计必少不了流程设计器的支持,本文将针对<通用流程设计>中的流程的设计器做一个简单的 ...

  2. 安装Cloudera Impala

    安装Cloudera Impala Cloudera Impala是Cloudera Enterprise Core的开源扩展,用于快速返回查询结果. Impala作为你环境的插件,与其他组件的安装独 ...

  3. IT职场初体验一

    自己学习计算机专业也算有两个年头了吧,对于这个刚刚IT入门的菜鸟,对IT职场充满了好奇和憧憬,本人大学也像很多大学生一样,进入计算机专业也不是自己最初想进入的专业,进入这个原本离自己有点遥远的行业,一 ...

  4. Docker容器化部署Python应用

    1. 简介 Docker是目前主流IT公司广泛接受和使用的,用于构建.管理和保护它们应用程序的工具. 容器,例如Docker允许开发人员在单个操作系统上隔离和运行多个应用程序,而不是为服务器上的每个应 ...

  5. 【查虫日志】快速判断一副灰度图像中是否只有黑色和白色值(即是否为二值图像)过程中bool变量的是是非非。

    二值图像我们在图像处理过程中是经常遇到的,有的时候我们在进行一个算法处理前,需要判断下一副图像的数据是否符合二值图的需求,这个时候我们可以写个简单的函数来做个判断,比如我写了一个很简单的的代码如下: ...

  6. RequestMappingHandlerAdapter和RequestParam原理分析

    我们要使用定义了RequestMapping方法或者类是,需要先准备好所需要的参数.如何准备参数,我们应该考虑些上面问题. 都有哪些参数需要绑定? 除了方法确定的参数,还有两个方法的参数需要绑定,那就 ...

  7. 【mysql5.7】远程无法连接设置

    版本5.7 系统:ubuntu16.04 配置文件位置(apt安装): 1.链接设置 注释掉在/etc/mysql/mysql.conf.d/mysqld.cnf里面的bind-address = 1 ...

  8. JavaScript 之有趣的函数(函数声明、调用、预解析、作用域)

    前言:“函数是对象,函数名是指针.”,函数名仅仅是指向函数的指针,与其他包含函数指针的变量没有什么区别,话句话说,一个函数可能有多个名字. -1.函数声明,function+函数名称.调用方法:函数名 ...

  9. RABC权限控制(页面操作角色,权限和进行分配)

    上一节主要说的是如何通过url进行权限控制,这一节就说一下如何开发一个权限控制的界面,这样我们就能很方便的创建角色,并分配给用户不同角色和不同权限. 1.编写角色管理页面 这个编写较为简单,主要是通过 ...

  10. Qt实现炫酷启动图-动态进度条

    目录 一.简述 二.动效进度条 1.光效进度条 2.延迟到达进度条 3.接口说明 三.启动图 1.实现思路 2.背景图切换 四.测试 1.构造启动图 2.背景图 3.其他信息 4.事件循环 五.源码 ...