操作系统接口os
- 切换目录
>>> import os>>> os.getcwd() # 得到当前工作目录'C:\\Users'>>> os.chdir('F:\\') # 切换工作目录到F盘>>> os.system('mkdir tody') # 在f盘创建一个叫tody的文件夹0
-
import os 与 from os import * ,要以import os的方式导入os模块。
第二种方式导入os.open() 会 覆盖掉内置函数的opne() -
dir(os) 和 help(os) 可以看到内置模块里面的名称。
shutil模块用于文件的复制
- 文件复制的操作
>>> import shutil>>> import os>>> os.chdir('e:/Txt') # 切换到e盘目录>>> shutil.copyfile('2.txt', 'copy.md') # 把2.txt 复制到 copy.md 这个文件'copy.md'>>>
- 文件剪切的操作
>>> shutil.move('e:/Txt/copy.md', 'copy1.md') # 把e盘compy.md移到f盘的copy.md'copy1.md'
文件通配符 glob (通配符)
- 匹配e盘下面的所有.txt结尾的文件
>>> os.getcwd()'e:\\Txt'>>> os.chdir('e:\\Txt') # 切换当前的目录>>> import glob>>> glob.glob('*.txt') # 匹配e\txt目录下的.txt结尾文件['1.txt', '2.txt', '3.txt', 'ps.txt', 'score.txt']
>>>
对数据进行处理的库
- 命令行参数
python test.py start end
import sys
print(sys.argv) # [start, end]
多个命令行参数
- 错误输出重定向和程序终止
sys.stdin sys.stdout sys.stderr sys.exit()
# 错误输出重定向和程序终止
def test_std():import sysr = sys.stdin.readline() # 接收输入的信息print('接收输入流, ', r)sys.stdout.write('hello my python!\n')sys.stderr.write('you are wrong...\n') # 用于输出错误信息sys.exit('系统退出啦')test_std() # 我输入一个 abc
'''
abc
接收输入流, abchello my python!
you are wrong...
系统退出啦
'''
- 字符串的简单匹配
def test_reg():import reres = re.findall(r'\bf[a-z]*', 'flower is beauty, it fly higher!') # 以f开头,单词的分界处, 整个单词print(res)res = re.sub(r'(\b[a-z]+) \1', r'\1', 'girl in the house') print(res)str = 'tea for too too'print(str.replace('too', 'two', 2)) # 替换
# test_reg()
'''
['flower', 'fly']
girl in the house
tea for two two
'''
- math数学库c为底层
def test_math():import mathprint(math.cos(math.pi / 1))print(math.log(64, 2))# test_math()
'''
-1.0
6.0
'''
- random
import random as rdch = rd.choice(['py', 'java', 'dotnet', 'go'])print('random 随机到的语言是,', ch)i = rd.sample(range(100), 5)print('100里面随机选5个数 ', i)print(rd.random()) # 一个随机数 0 < x < 1 的floatprint(rd.randrange(4)) # 0 - 4中的随机数test_rd()
- statistics统计库
def test_statistics():import statistics as s # 统计库data = [11, 12, 13]print(s.mean(data)) # 平均值12print(s.median(data)) # 中位数12print(s.variance(data)) # 方差 1
- 访问网络
# 我把我的上一篇博客的网页给写入文件了
def test_internet():from urllib.request import urlopenwith urlopen('https://blog.csdn.net/qq_44783283/article/details/105980454') as resp:# print(resp.info())for line in resp: with open('e:/Txt/1.txt', mode='a+', encoding='UTF-8') as f:line = line.decode('UTF-8')f.write(line)test_internet()
- 时间日期
'''
时间日期datetime 模块提供了以简单和复杂的方式操作日期和时间的类。虽然支持日期和时间算法,但实现的重点是有效的成员提取以进行输出格式化和操作。该模块还支持可感知时区的对象。from datetime import dateNow = date.today()Now.strftime("%m- %d - %y")小写是缩短的单词a代表星期的单词 b 代表月份''' '''date支持日期运算date.today() - date(1999, 11, 2)'''>>> from datetime import date # 从日期时间库导入日期>>> now = date.today()>>> now.strftime('%A')'Monday'>>> now.strftime('%d')'11'>>> now.strftime('%D')'05/11/20'>>> now.strftime('%b')'May'>>> now.strftime('%B')'May'
ziplib 压缩字符
def test_gzip():import zlibs = b'lover my lover she is my lover' # binary形式print(len(s))t = zlib.compress(s) # 把s压缩print('解压前的长度{0}, 字符为{1}'.format(len(t), t))de_res = zlib.decompress(t) # 解压tprint('解压后的长度{0}, 字符为{1}'.format(len(de_res), de_res))print(zlib.crc32(s)) # 可以应用于通讯和数据压缩程序。test_gzip()'''
30
解压前的长度27, 字符为b'x\x9c\xcb\xc9/K-R\xc8\xadT\xc8\x013\x8a3R\x152\x8b\xe1|\x00\xad\x85\x0b!'
解压后的长度30, 字符为b'lover my lover she is my lover'
2248744910
'''
doctest 和 unittest模块维护代码
- doctest
def average(values: list)-> int:''' 求列表的平均数>>> print(average([10, 20, 30]))>>> 20.0'''return sum(values) / len(values)i = average([10, 20, 30])
print(i)import doctest
doctest.testmod()
- unittest
# 用于测试一个类,看有那些错误以文本的形式打印出来。
import unittest
class TestStatisticalFunc(unittest.TestCase):def test_average(self):self.assertEqual(average([10, 20, 30], 20))self.assertEqual(round(average([1, 3, 5], 6.6)))with self.assertRaises(ZeroDivisionError):average([])with self.assertRaises(TypeError):average([10, 20, 30])unittest.main()
只是展示了小部分的demo,更细的地方还未涉及,比如gzip怎么压缩文件,urllib包里面怎么爬虫,statistics怎么和numpy,matplotlib画可视化的图。接触到后,会再详细说明。