os模块
使用前老规矩:加上import os
1.创建目录(文件夹)makedirs
os.mkdir(r'aaa') #在os所在的路径下创建一个aaa文件夹(只能创建一个单级目录) os.makedir((r'ccc') os.makedirs(r'bbb/ccc/ddd') # makedirs支持创建多级目录
2.删除目录(文件夹)removedir
os.rmdir(r'aaa') #可以删除{单级}{空的}目录 os.removedir(r'/Users/jiboyuan/PycharmProjects/day21/bbb/ccc/ddd')#可以删除多级,删除目标目录后如果外层的目录也是空的会自动删除,
并且这里必须写具体路径在括号内(也可以删除单个os.removedirs(r'ccc') )
3.查看某个路径下所有文件名称(文件/文件夹)listdir
print(os.listdir())#不填则默认现在文件的路径 print(os.listdir(r'/Users')) #也可以自定义查找非现在文件的路径
4.删除/重命名文件 remove rename
os.remove(r'a.txt') #删除文件 os.rename(r'a.txt', r'aaa.txt') #(现在的文件名,修改后的名字)
5.获取当前路径/切换路径 getcwd chdir
print(os.getcwd()) #获取当前路径 os.chdir(r'/Users/jiboyuan') #ch(更改)dir(目录) print(os.getcwd()) #再打印就是更改后的目录
6.软件开发目录规范 兼容性操作(不同人电脑也可以使用)dirname abspath
os.path.dirname(_ _ file _ _) #动态获取(每个人的电脑上面都会有改变)当前文件的绝对路径 eg D:\day21 os.path.dirname(os.panth.dirname(_ _ file _ _)) #嵌套一层就是往上切换一层 D:\ print(os.path.abspath(__file__)) #动态获取当前执行文件自身路径,和上面相似,但是会比较具体些 D:\day21\a.py
7.判断文件是否存在 exist(存在) isdir(是文件夹) isfile(是文件)
print(os.path.exists(r'ATM')) # True 判断所给的路径是否存在(文件降夹) print(os.path.exists(r'01 作业讲解.py')) # True 判断所给的路径是否存在(文件) '''exists可以用在文件也可以用于文件夹,返回布尔值''' #判断路是否是文件夹 isdir print(os.path.isdir(r'ATM')) # True 判断路径是否是一个文件夹 print(os.path.isdir(r'01 作业讲解.py')) # False 判断路径是否是一个文件夹 #判断路是否是文件 isfile print(os.path.isfile(r'ATM')) # False 判断路径是否是一个文件 print(os.path.isfile(r'01 作业讲解.py')) # True 判断路径是否是一个文件
8.拼接路径 join
base_dir = 'ATM' exe_dir = '01 作业讲解.py' '''拼接成py文件的路径''' #方法一 print(base_dir + '/' + exe_dir) #但是可惜在不同电脑上分隔符号有的是/有的是\,使用加号兼容性不高!! #方法二 res = os.path.join(base_dir, exe_dir) # 能够自动识别当前操作系统的分隔符
9.获取文件大小(字节 bytes为单位)getsize
print(os.path.getsize(r'ATM')) # 128(这里的128表示128bytes,每个英文字母表示1bytes,每个中文表示2bytes)
sys模块
"""该模块主要是跟python解释器打交道""" import sys # 1.列举当前执行文件所在的路径(掌握) print(sys.path) # 2.获取解释器版本信息(了解) print(sys.version) # 3.获取平台信息(了解) print(sys.platform) # 4.自定义命令行操作(了解,用的不多暂时) print(sys.argv) """ cmd终端可以使用windows+r并输入cmd唤起 也可以在pycharm直接使用快捷方式Terminal(在pycharm下面框子的左边) 模拟cmd并自动切换到当前执行文件所在的路径下 """ # if len(sys.argv) == 3: # 这里的判断也可以变成异常捕获的形式 # username = sys.argv[1] # password = sys.argv[2] # if username == 'jason' and password == '123': # print('可以正常执行该文件') # else: # print('用户名或密码错误 没有该文件的执行权限') # else: # print('请输入用户名和密码 不能漏写或多写') try: (或者用异常捕获的形式) username = sys.argv[1] password = sys.argv[2] except Exception: print('请输入用户名和密码') else: if username == 'jason' and password == '123': print('可以正常执行该文件') else: print('用户名或密码错误 没有该文件的执行权限')
json模块(重要)
'''json是一个序列化模块 主要用于跨语言传输数据''' #我们都知道传输现在都是用网络传输,而网络传输必然是2进制传输,也就是bytes类型传输,而二进制传输必须是字符串,
由此可以知道json格式数据就是属于字符串类型! import json d = {'username':'jason','pwd':123} print(d, type(d)) # {'username': 'jason', 'pwd': 123} <class 'dict'> res = json.dumps(d) print(res, type(res)) # {"username": "jason", "pwd": 123} <class 'str'>'''双引号是json格式数据独有的标志符号''' print(str(d),type(str(d))) # {'username': 'jason', 'pwd': 123} <class 'str'>
'''补充!!!''' d = {"username":"jason","pwd":123} print(d) # {'username': 'jason', 'pwd': 123} 不是 res1 = '{"username":"jason","pwd":123}' #外面再加上双引号 print(res1) # {"username":"jason","pwd":123} 算json格式
具体操作
d = {'username':'jason','pwd':123} res = json.dumps(d) #将字典转成字符串 encode_str = res.encode('utf8') #将字符串转成二进制便于网络进行传输 json_str = encode_str.decode('utf8') #收到后进行解码(注意这个解码后依然是字符串) res1 = json.loads(json_str) #将字符串再转换成字典 """ json.dumps() 序列化 将python数据类型转换成json格式字符串 json.loads() 反序列化 将json格式字符串转换成对应的数据类型 """
#强调:不是所有的数据类型都支持序列化 支持序列化的有: 字典/列表/元组/字符串/整型/浮点型/布尔值中的True和False/None(不包括集合)
pickle模块
# 基本不用 因为它不支持跨语言传输 只能识别python代码 '''直接忽略 不用掌握'''
subprocess模块
import subprocess # ls在终端的意思就是查看当前路径下所有的文件名称 res = subprocess.Popen('ls', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) #了解即可,固定写法,不用知道为什么! print('stdout',res.stdout.read().decode('utf8')) # 获取正确命令执行之后的结果 print('stderr',res.stderr.read().decode('utf8')) # 获取错误命令执行之后的结果 """ 该模块可以实现远程操作其他计算机的功能 动态获取命令执行并返回结果 eg:类似于Xshell软件的功能 """
标签:username,21,路径,subprocess,sys,json,print,os From: https://www.cnblogs.com/Milk1/p/17596937.html