python(30)——【random模块】【if __name__ =='__main__'】【os模块】
一、random模块(随机模块)
1.random 常用模块介绍
import random
print(random.random())
#返回[0,1)之间的随机浮点数
print(random.randint(2, 4))
#返回一个[2,4]内的随机整数
print(random.choice([1, [20, 23], 66, 4]))
#返回可迭代对象中的任意一个元素
print(random.sample([1, [20, 23], 66, 4], 2))
#返回可迭代对象中的任意N个且不重复的元素(通过第二个参数改变返回的元素个数)
print(random.uniform(1 ,3))
#返回[1,3)之间的随机浮点数
#随机指定序列的顺序(类似于洗牌)
import random
item = [1, 2, 3, 4, 5]
random.shuffle(item)
print(item)
2.random 模块应用
#六位随机验证码的产生
import random
def v_code():
ret = ''
for i in range(6):
num = random.randint(0, 9) #随机产生0-9数字
alf1 = chr(random.randint(65, 90)) #随机产生大写字母A-Z
alf2 = chr(random.randint(97, 122)) #随机产生小写字母a-z
s = str(random.choice([num, alf1, alf2])) #数字和字母随机选取
ret += s
return ret
print(v_code())
二、if __name__ =='__main__'的一些补充
之前有在这篇博客中有提到相关内容:https://www.cnblogs.com/guoruxin/p/10109621.html
做一些相关补充:
cal.py中的内容如下:
A = 5.20
print(__name__)
if __name__=='__main__':
def add_cal(x,y):
return x + y + A
当test.py作为执行文件时,执行结果如下:
__main__
结论:当test.py作为执行文件时,__name__==__main__
当test.py作为模块被导入时
from cal import A
print(A)
#执行结果如下:
cal
5.2
结论:当test.py作为模块被导入时,__name__==cal,即__name__==被调用模块的模块名
三、os模块
os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径
#举例:
import os
os.getcwd()
#执行结果:
D:\Users\XIAOHuoguo\PycharmProjects\TF_Learning\os_module
os.os.chdir() #改变当前脚本工作目录,相当于shell下的cd
#举例:
import os
print(os.getcwd())
os.chdir("D:/Users/XIAOHuoguo/PycharmProjects/TF_Learning/random_module")
print(os.getcwd())
#执行结果:
D:\Users\XIAOHuoguo\PycharmProjects\TF_Learning\os_module
D:\Users\XIAOHuoguo\PycharmProjects\TF_Learning\random_module
os.curdir #返回当前目录:相当于‘.’ os.pardir #获取当前目录的父目录字符串名,相当于‘..’
os.makedirs('dirname1/dirname2/dirname3') #可生成多层递归目录
#举例:
import os
os.makedirs('test1/test2/test3')
os.removedirs() #若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依次类推
#注意:
若删除的目录不为空,则报错
#举例:
os.removedirs('D:/Users/XIAOHuoguo/PycharmProjects/TF_Learning/os_module/test1/test2/test3')
os.mkdir() #生成单级目录,相当于shell中mkdir dirname
os.rmdir() #删除单级空目录,若目录不为空则无法删除则无法删除,报错,相当于shell中rmdir dirname
#注意:在删除同级目录下的目录时,在os.removedirs() 和 os.rmdir()中,而直接写目录名即可,不同级需要添加删除目录的绝对路径。
os.listdir() #列出指定目录下所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() #删除一个文件
os.rename('oldname','newname') #重命名文件/目录
#注意:修改不是同级目录的文件名时,需要在newname前添加目标绝对路径,否则修改结果会改变其绝对路径
os.stat() #获取文件/目录信息
#举例:
import os
print(os.stat('os_test.py')) #执行结果:
os.stat_result(st_mode=33206, st_ino=10696049115057371, st_dev=3231772741, st_nlink=1, st_uid=0, st_gid=0, st_size=655, st_atime=1551927079, st_mtime=1551927079, st_ctime=1551880901) #结果分析:(时间显示为时间戳格式)
st_size=655 #该文件所占字节
st_atime=1551927079 #用户上一次访问时间
st_mtime=1551927079 #用户上一次修改时间
st_ctime=1551880901 #创建时间
os.sep #输出操作系统特定的路径分隔符,win下为‘\\’,Linux下为‘/’
os.linesep #输出当前平台使用的行终止符,win下为‘\r\n’,Linux下为‘\n’
os.pathsep #输出用于分割文件路径的字符串,win下为‘ ;’,Linux下为‘ :’
os.name #输出字符串指示当前使用平台。win-->'nt',Linux-->‘poaix’
os.system('bash command') #运行shell命令,直接显示
os.environ #获取系统环境变量
os.path.abapath(path) #返回path规范化的绝对路径
os.path.split(path) #将path分割成目录和文件名二元组返回(第一个元素为目录,第二个元素为文件名)
os.path.dirname(path) #返回path的目录,其实就是os.path.split(path)的第一个元素
os.path.basename(path) #返回path的文件名,其实就是os.path.split(path)的第二个元素(如果path以/或者\结尾,name就会返回空值)
os.path.exists(path) #如果path存在,则返回True;如果path不存在,则返回False
os.path.isabs(path) #如果path是绝对路径,返回True
os.path.isfile(path) #如果是存在的文件,返回True;否则返回False
os.path.isdir(path) #如果是存在的目录,返回True;否则返回False
os.path.join(path1[, path2[, ...]]) #将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
#涉及到路径拼接,应该考虑到使用join(拼接的时候尽量使用join,而不要使用+号)
举例:
a = 'D:/Users/XIAOHuoguo/PycharmProjects'
b = 'TF_Learning/os_module/os_test.py'
print(os.path.join(a, b))
#执行结果如下:
D:/Users/XIAOHuoguo/PycharmProjects/TF_Learning/os_module/os_test.py
os.path.getatime(path) #返回path所指向的文件或者目录的最后存取时间 os.path.getctime(path) #返回path所指向的文件或者目录的最后修改时间
python(30)——【random模块】【if __name__ =='__main__'】【os模块】的更多相关文章
- Pycharm上python unittest不执行"if __name__ == '__main__' "问题or选择非unittest run
转:http://www.cnblogs.com/csjd/p/6366535.html python unittest不执行"if __name__ == '__main__' " ...
- python模块知识二 random -- 随机模块、序列化 、os模块、sys -- 系统模块
4.random -- 随机模块 a-z:97 ~ 122 A-Z :65 ~ 90 import random #浮点数 print(random.random())#0~1,不可指定 print( ...
- python中关于不执行if __name__ == '__main__':测试模块的解决
1.新建测试脚本文件: 2.编辑测试脚本 import unittest import requests import json import HTMLTestRunner ur1 = 'http:/ ...
- python 全栈开发,Day28(复习,os模块,导入模块import和from)
一.复习 collections 增加了一些扩展数据类型 :namedtuple orderdict defaltdict队列和栈time 时间 三种格式 : 时间戳 结构化 字符串random 随机 ...
- Python基础之模块:3、os模块 sys模块 json模块 json实战
目录 一.os模块 1.创建目录 2.删除目录 3.查看指定路径下目录内容 4.删除/重命名文件 5.获取/切换当前目录 6.动态获取项目根路径 7.拼接/切割路径 8.判断文件.目录是否存在 9.判 ...
- (转)Python中如何理解if __name__ == '__main__'
摘要 通俗的理解 __name__ == '__main__' :假如你叫李凯.py,在朋友眼中,你是李凯( __name__ == '李凯' ):在你自己眼中,你是你自己( __name__ == ...
- Python基础(11)_python模块之time模块、rando模块、hashlib、os模块
一.模块 1.什么是模块:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀 模块的本质:模块的本质是一个py文件 2.模块分为三类:1)内置模块:2)第三方模块: ...
- Python之路(第十四篇)os模块
一.os模块 1.os.getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) import os print(os.getcwd()) 2.os.chdir(path) 改变 ...
- python unittest不执行"if __name__ == '__main__' "问题(Pycharm)
问题: 1.selenium导入unittest框架和HtmlReport框架后,HtmlReport不被执行. 2.IDE为Pycharm 假设代码为: from selenium import w ...
- python中如何理解if __name__ == '__main__'
__name__ 是当前模块名,当模块被直接运行时模块名为 __main__ .这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行.我们通过一个简单的例子来理解 ...
随机推荐
- Windbg断点调试
[文章主题] Windbg是Windows驱动调试的重要软件,也是必须学习的软件,前面的博客介绍了一些双机调试的环境配置,只要按照我所说的步骤一步步下来就可以完成环境搭建. 本文主要介绍如何调试sys ...
- 语义分割之Dual Attention Network for Scene Segmentation
Dual Attention Network for Scene Segmentation 在本文中,我们通过 基于自我约束机制捕获丰富的上下文依赖关系来解决场景分割任务. 与之前通过多尺 ...
- 在VMware的虚拟机中克隆CentOS,在重启网卡的时候报错解决办法
克隆虚拟机配置 1.修改:vi /etc/hosts 2.修改:vi /etc/sysconfig/network 3.重启生效:reboot或者init 6 如不重启可以输入:hostname 新 ...
- 515. Find Largest Value in Each Tree Row查找一行中的最大值
[抄题]: You need to find the largest value in each row of a binary tree. Example: Input: 1 / \ 3 2 / \ ...
- linux 安装mysql相关和openjdk
新装的centos 6.9虚拟机 修改yum 服务器源 cd /etc/yum.repos.d/ rename repo repo.bak_$(date +%F) * 阿里的yum库 https:/ ...
- css初始
css概念及作用 css即层叠样式表的英文缩写 作用:1 渲染页面 2 页面布局 css语法 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明. 格式: selector{ prope ...
- service 设计问题
今天写了一段让自己尴尬的代码,就是在一个方法中调用了两个 service 方法,而我为每个service 都定义了 事物回滚. 然后郁闷了,我执行请求调用该方法, 发现第二个service方法执行失败 ...
- KD-树(上)
来自于https://zhuanlan.zhihu.com/p/23966698 思路篇 导语:kd 树是一种二叉树数据结构,可以用来进行高效的 kNN 计算.kd 树算法偏于复杂,本篇将先介绍以二叉 ...
- mysql---select的五种子句学习(where、group by、having、order by、limit)
mysql---select的五种子句学习(where.group by.having.order by.limit) 分类: Mysql学习2012-09-27 16:14 1533人阅读 评论 ...
- ABP框架系列之十九:(Debugging-调试)
While it's not generally needed, you may want to step into ABP's source code while you debugging you ...