python标准库怎么用_Python常用标准库使用(一)

自学python一段时间,之前总是学习基本语法,对Python标准库没怎么接触,所以计划从常用的标准库开始,大体了解一遍,下面是学习过程中的笔记。

一、OS模块

主要对目录、或者文件操作。常用方法如下:

os.listdir(path) ,path 要获得内容目录的路径,列表形式列出目录 下所有目录和文件 名

os.mkdir(path) ,path 要创建目录的路径

os.rmdir(path) ,path 要删除的目录的路径(os.rmdir(path) ,path 要删除的目录的路径)

os.name 返回操作系统类型 返回值是"posix"代表 linux,"nt"代 表 windows

os.getcwd() 获取当前路径

os.makedirs(path [, mode=0777]) 递归创建目录

os.remove(path) 移除文件

os.rename(old, new) 重命名文件或目录

os.system(command) 执行 shell 命令, 不能存储结果

os.path 类用于获取文件属性

os.path.basename(path) 返回最后一个文件 或目录名

os.path.dirname(path) 返回最后一个文件 前面目录

os.path.abspath(path) 返回一个绝对路径

os.path.isdir(path) 判断是否是目录

os.path.isfile(path) 判断是否是文件

栗子1:

获得目录中的内容,创建目录,删除目录

#!/usr/bin/python

# -*-coding:utf-8-*-

import os

# 如何获得目录中的内容

path = 'D:\workspace\pyTest'

def getdirlist():

a = os.listdir(path)

print a

print len(a)

getdirlist()

b = os.listdir(os.getcwd())

print os.getcwd()

print b

print len(b)

# 创建目录

os.mkdir(path + "\\temp")

getdirlist()

# 删除目录

os.rmdir(path + "\\temp")

getdirlist()

运行结果:

fc7341e297c0

image.png

栗子2:

import os

print os.name

# 获取当前路径

os.getcwd()

path = 'D:\workspace\pyTest'

os.mkdir(path + "\\test")

# 递归创建目录

os.makedirs(path + "\\test0\\test1\\test2")

# 移除文件

os.remove(path + "\\123.txt")

# 重命名文件或目录

os.rename(path + "\\123.txt", path + "\\1234.txt")

# 执行 shell 命令, 不能存储结果

command = ''

os.system(command)

# os.path 类用于获取文件属性

# 返回最后一个文件 或目录名

print os.path.basename(path) # pyTest

# 判断是否是目录

print os.path.isdir(path) # True

# 判断是否是文件

print os.path.isfile(path) # False

二、sys模块

python sys模块包含了与python解释器和它的环境有关的函数,这个你可以通过dir(sys)来查看他里面的方法和成员属性

import sys

print dir(sys)

result:

复制代码代码如下:

['__displayhook__', '__doc__', '__excepthook__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_getframe', '_mercurial', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dllhandle', 'dont_write_bytecode', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'getcheckinterval', 'getdefaultencoding', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'gettrace', 'getwindowsversion', 'hexversion', 'long_info', 'maxint', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'py3kwarning', 'setcheckinterval', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions', 'winver']

sys.argv命令行参数

#!/usr/bin/python

# -*-coding:utf-8-*-

import sys

print sys.argv[0]

print sys.argv[1]

print sys.argv[2]

print sys.argv[3]

print sys.argv # argv 既然是一个列表,那么可以通过 len()函数获取这个列表的长度从而知道输入的参数数量

print len(sys.argv)

print len(sys.argv[1:])

运行结果:

注意:sys.argv是一个列表,列表sys.argv[0]是文件名,平时统计参数个数时,记得-1,len(sys.argv[1:])。

fc7341e297c0

image.png

sys.path模块搜索路径

sys.path

输出的是一个列表,里面包含了当前 Python 解释器所能找到的模块目录。

如果想指定自己的模块目录,可以直接追加 sys.path.append(path)

sys.platform系统平台标识符

sys.platform

系统 平台标识符:

Linux linux

Windows win32

Windows/Cygwin cygwin

Mac OS X darwin

sys.subversion解释器版本

sys.subversion

Python 解释器有几种版本实现,而默认解释器是 CPython:

('CPython', '', '')

sys.version查看python版本

sys.version

sys.exit()退出解释

代码执行过程中,到 sys.exit()就会终止程序

三、math 数字处理

import math

# 返回圆周率

print math.pi

# 返回X浮动的上限

print math.ceil(5.2)

# 返回X浮动的下限

print math.floor(5.2)

# 将数字截尾取整

print math.trunc(5.2)

# 返回X的绝对值

print math.fabs(-5.2)

# 返回 x%y(取余)

print math.fmod(5, 2)

# 返回 x 小数和整数

print math.modf(5.2)

# 返回 x 的阶乘

print math.factorial(5)

# 返回X的y次方

print math.pow(2, 3)

print 2 ** 3

# 返回X的平方根

print math.sqrt(5)

运行结果:

fc7341e297c0

image.png

四、random生成随机数

import random

# 用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b

print random.randint(1, 10)

# 用于生成一个0到1的随机符点数: 0 <= n < 1.0

print random.random()

# 返回整数范围的随机数,并且可设置step

print random.randrange(1, 10, 3)

# random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列

print random.sample([1, 2, 3, 4, 5], 3)

五、json

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,一般API返回的数据大多数是JOSN、XML,如返回的是JSON,将JSON数据转换成字典,方便在程序中处理。

JSON库常用的有两种方法:dumps()和loads()

dumps是将dict转化成str格式

loads是将str转化成dict格式。

import json

a = {'name': 'wang', 'age': '20'}

print type(a)

b = json.dumps(a)

print b, type(b)

c = json.loads(b)

print c, type(c)

运行结果:

{"age": "20", "name": "wang"}

{u'age': u'20', u'name': u'wang'}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

英伟达|jetson nano开发使用的基础详细分享

大家好&#xff0c;我是写代码的篮球球痴&#xff0c;最近我朋友写了一篇英伟达开发板的文章&#xff0c;分享给大家。前言&#xff1a;最近拿到一块jetson nano 2GB版本的板子&#xff0c;折腾了一下&#xff0c;从烧录镜像、修改配件等&#xff0c;准备一篇开箱基础文章给大家…

和PP在腾讯

昨天晚上十点&#xff0c;我在会议室搞项目&#xff0c;PP发消息给我说 「你什么时候下班&#xff0c;等我一下&#xff0c;我下去见见你再走」。我说「你赶紧下来&#xff0c;我熬不住了」。因为确实比较晚&#xff0c;然后自己手上开发的事情也还没完成&#xff0c;有时还会冒…

python求回数_用python求回数

今天学到filter函数&#xff0c;做一道练习题&#xff0c;求回数的&#xff0c;我前前后后差不多用了半个小时才把它弄出来&#xff0c;先是有思路了然后写出来后一直报错&#xff0c;又改改换换&#xff0c;最后其实是某个小问题导致的&#xff0c;每次查这种小问题时都先怀疑…

周末生活日记|我们和楠哥

这周是双休&#xff0c;早上跟楠哥一起睡了一个大懒觉。早上11点起来&#xff0c;不过小米音箱在9点的时候就在客厅响音乐&#xff0c;我大叫一声「小爱同学&#xff0c;停止播放」&#xff0c;然后继续蒙头大睡。11点起来&#xff0c;哦&#xff0c;在我们家我还算起的早的&am…

lnmp基于fastcgi实现nginx_php_mysql的分离_LNMP基于FastCGI实现Nginx,PHP,MySQL的分离

LNMP基于FastCGI实现Nginx,PHP,MySQL的分离[日期&#xff1a;2012-11-12]来源&#xff1a;Linux社区作者&#xff1a;laoguang[字体&#xff1a;大 中 小]平时安装LNMP是把它们安装到同一台机器上&#xff0c;我想这个对大家来说丝毫没有挑战&#xff0c;下面我们实现把他们剥离…

使用python game写一个贪吃蛇游戏

前言 最近在用python 做项目&#xff0c;也想对python有多一些了解&#xff0c;之前有用C语言和C写过python游戏&#xff0c;刚好可以通过这个游戏来对python多一些了解。 文章内容翻译自以下链接 https://www.edureka.co/blog/snake-game-with-pygame/ pygame 介绍 pygame是…

艾伟也谈项目管理,我是如何带领团队开发项目的

最近有不少朋友写信问我一些关于团队开发的问题,由于这段时间有些忙,没有回复.今天写一篇这方面的文章向大家介绍一下我是如何带领团队开发工作流项目的 关于团队建设,项目管理的文章网上已经有很多了,在这里我就不谈这些理论了,直接给大家展示一个我在 项目开发方,后台服务开…

mysql 动态索引_MySQL的索引

在日常工作中&#xff0c;我们经常会用到mysql的索引。使用索引的目的基本上就是为了在大量的数据中快速找出某个列中一个特定值的行&#xff0c;简单说就是提高查询效率。使用索引的优点&#xff1a;可以快速检索&#xff0c;减少I/O次数&#xff0c;加快检索速度&#xff1b;…

移植U-Boot思路和实践 | 基于RK3399

0. 背景介绍我们手里这块RK3399开发板出厂时带的是2017.09版本的U-Boot。U-Boot 2017.09 (Sep 26 2021 - 08:53:15 0000)Model: Forlinx OK3399 Evaluation Board PreSerial: 2 DRAM: 2 GiB Sysmem: init Relocation Offset is: 7dbe9000 Using default environment在这个基础…

一起谈.NET技术,WPF 基础到企业应用系列5——WPF千年轮回2

一&#xff0c;摘要 首先很高兴这个系列能得到大家的关注和支持&#xff0c;前端时间身体状况不适&#xff0c;所以暂停了更新&#xff0c;对此表示非常抱歉&#xff0c;以后会逐渐加快进度&#xff0c;不过由于这是一个很长的系列&#xff0c;我也想把它写好&#xff0c;所以以…

手把手教你|拦截系统调用

一、什么是系统调用系统调用 是内核提供给应用程序使用的功能函数&#xff0c;由于应用程序一般运行在 用户态&#xff0c;处于用户态的进程有诸多限制&#xff08;如不能进行 I/O 操作&#xff09;&#xff0c;所以有些功能必须由内核代劳完成。而内核就是通过向应用层提供 系…

mysql修改列明sql语句_SqlServer修改表名、修改列名T-SQL语句

前面介绍了SQL基本用法《MSSQL数据库常见操作 SQL语句》,但是没有介绍sql修改表的相关操作,本篇文章将介绍T-SQL修改表的相关操作。1。修改表名:execute sp_rename department.mgrig ,mgrid;详述:EXEC sp_rename 表名.[原列名], 新列名, columnTransact-SQL参考sp_rename----…

公司年会

没有抽奖的年会肯定是不完美的。有抽奖没有饭局的年会也是很香的。因为疫情&#xff0c;我们没有年终饭局&#xff0c;我也不知道过去那些年腾讯是怎么开年会的&#xff0c;不过今年&#xff0c;我觉得挺不错。上周我们搞了年终活动&#xff0c;我那时候还在开会&#xff0c;CG…

给年薪不到48w的程序员提个醒!!

近日&#xff0c;一程序员在脉脉自曝“年薪37W带12人团队&#xff0c;因学历内推腾讯被拒”&#xff0c;引发争议。末流院校&#xff0c;带12人前端团队&#xff0c;到手37w股票20w&#xff0c;过硬的编程技术让他觉得可以出去“闯闯”&#xff1b;内推到腾讯&#xff0c;电话里…

实验二 网络嗅探与欺骗

实验二 中国人民公安大学 Chinese people’ public security university 网络对抗技术 实验报告 实验二 网络嗅探与欺骗 学生姓名 张昊 年级 2015 区队 三 指导教师 高见 信息技术与网络安全学院 2018年9月25日 实验任务总纲 2018—20179学年 第 一 学期 一、实验目…

年终奖

我一个人走在路上&#xff0c;想说点什么&#xff0c;我觉得很难受&#xff0c;去年这个时候我一个高中同学跟我聊天&#xff0c;他跟我说「我听说你们在深圳做程序员的工资很高&#xff0c;我认识的一个朋友在深圳一个月2万多&#xff0c;年终奖发了十几万」。我想&#xff0c…

Spring AOP 五大通知类型

1.前置通知 在目标方法执行之前执行执行的通知。 前置通知方法&#xff0c;可以没有参数&#xff0c;也可以额外接收一个JoinPoint&#xff0c;Spring会自动将该对象传入&#xff0c;代表当前的连接点&#xff0c;通过该对象可以获取目标对象 和 目标方法相关的信息。 注意&…

转载CSDN博文精选:Android系列开发博客资源汇总

CSDN博客本期热文推荐&#xff0c;为您介绍有关Android应用开发的10个博客&#xff0c;分享他们的日积月累的宝贵经验&#xff0c;希望这些文章对Android开发者们能有所启发和帮助。 [1] 张国威&#xff1a;Android从入门到提高系列 前面写了十四篇关于界面的入门文章&#xff…

简单工厂模式+工厂方法模式

在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; …

Windows下搭建ESP-IDF开发环境,适合ESP32/S2/C3/S3系列模组二次开发

前言本教程适用于以下两种用户&#xff1a;①无Linux环境搭建经验或搭建Linux开发环境不成功&#xff1b;②使用安信可windows一体化环境IDE V1.5开发环境搭建不成功&#xff1b;本教程提供了windows下搭建 ESP-IDF 开发环境的方法。适用系统&#xff1a;Windows 10 64 位版本、…