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. 获得QQ聊天输入框中的内容

    // 首先得到输入框的句柄.通过spy++这类工具分析,聊天窗体的类名为“#32770”// 但当前系统里不只一个类名为“#32770”的窗体,这就需要全体遍历一次.// 类名为“#32770”标题含 ...

  2. 转一个git的命令

    Git远程操作详解   Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作. git clone git rem ...

  3. 【linux杂谈】跟随大牛进行一次服务器间通讯问题的排查

    发现应用记录日志内,出现网络访问延迟较大的情况. 此类问题较为常见,特别是之前参与辅助一个朋友项目运维的过程中,经常因为网络访问延迟较大,朋友认为是遭到了ddos攻击或者是cc攻击.网络访问延迟较大常 ...

  4. Storm 学习之路(九)—— Storm集成Kafka

    一.整合说明 Storm官方对Kafka的整合分为两个版本,官方说明文档分别如下: Storm Kafka Integration : 主要是针对0.8.x版本的Kafka提供整合支持: Storm ...

  5. CentOS 7 使用 HP 打印机

    通常 hp 打印机应该是直接就能用的,但 centos 7 就一直遇到 printing job stopped 的情况.查看 http://localhost:631/printers/ 并没什么用 ...

  6. 浅说——状压DP

    第一次没认真听,没听懂.(有点难) 第二次才搞懂,主要位运算太烦了!!! 位运算基础知识: 名称 符号 规则 按位与 & 全一则一,否则为零 按位或 | 有一则一,否则为零 按位取反 ~ 是零 ...

  7. leadcode的Hot100系列--17. 电话号码的字母组合--回溯的另一种想法的应用

    提交leetcode的时候遇到了问题,一直说访问越界,但仔仔细细检查n多遍,就是检查不出来. 因为我用到了count全局变量,自加一来表明当前数组访问的位置, 后来突然想到,是不是在leetcode在 ...

  8. Atlassian In Action-Jira之指导思想(一)

    太上,不知有之:其次,亲而誉之:其次,畏之:其次,侮之.信不足焉,有不信焉.悠兮,其贵言.功成事遂,百姓皆谓"我自然". --<道德经> 研发管理或者系统工具的指导思想 ...

  9. MyBatis从入门到精通(八):MyBatis动态Sql之foreach标签的用法

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用foreach ...

  10. cookie 和 session 设置

    cookie: 保存在浏览器上的一组键值对, 是由服务器让浏览器进行设置的 下次浏览器访问的时候会携带cookie. request是客户端请求, response是服务端响应. 读取客户端的cook ...