今日内容详细

os模块(重要)

os模块主要与代码运行所在的操作系统打交道

import os

1.创建目录
1.创建目录(文件夹)
os.mkdir(r'L4')
# 只可以创建单级目录 相对路径 执行文件所在的路径下创建目录
os.mkdir(r'L1\L2\L3')
# 不能创建多级文件
os.makedirs(r'L3\l3\l4')
# 可以创建多级目录
os.makedirs(r'L3')
# 也可以创建单级目录
2.删除目录
2.删除目录(文件夹)
os.rmdir(r'L1')
#可以删除单级目录 只能删除空的单级目录
os.removedirs(r'L3\l3\l4')
#可以删除多级目录 只能删除空的多级目录
3.列举指定路径下内容文件
3.列举指定路径下内容名称
print(os.listdir())
#['.idea', 'a.py', 'L4']当前目录下的文件名称
print(os.listdir(r'E:\\动画'))
#['《触摸》毕业设计李宗月', '动画_1.avi', '场景设计', '简历']
#指定路径下的所有文件名和隐藏文件名
4.删除/重命名文件
4.删除/重命名文件
os.rename(r'L4',r'L1')
#重命名文件名 前面是原来的名 后面是要更改的名
os.remove(r'L1\1.py')
#删除指定文件
5.获取/切换当前工作目录
5.获取/切换当前工作目录
print(os.getcwd())
#D:\python10.20 获取当前所在的文件目录
os.chdir('..')
os.makedirs(r'LL')
#切换到上一级创建文件夹
6.动态获取项目根路径
6.动态获取项目根路径(重要)
print(os.path.abspath(__file__))
#D:\python10.20\a.py 获取当前文件所在的绝对路径
print(os.path.dirname(__file__))
#D:/python10.20 获取当前文在所在的目录路径
7.判断路径是否存在(文件、目录)
7.判断路径是否存在(文件、目录)
print(os.path.exists(r'a.py'))
#True 判断文件路径是否存在
print(os.path.exists(r'D:\LL'))
#True 判断目录是否存在
print(os.path.isfile(r'a.py'))
#True 判断路径是否是文件
print(os.path.isfile(r'D:\\'))
#False 判断路径是否是文件
print(os.path.isdir(r'a.py'))
#False 判断路径是否是目录
8.路径拼接(重要)
8.路径拼接(重要)
s1=r'D:\LL'
s2=r'a.py'
print(f'{s1}\{s2}')
#D:\LL\a.py
"""
涉及路径拼接一定不要自己做
因为不同的操作系统路径分隔符不同
"""
print(os.path.join(s1, s2))
#D:\LL\a.py
9.获取文件大小(字节)
9.获取文件大小(字节)
print(os.path.getsize(r'a.py'))
#2102 一个英文是一个字符 一个中文是3个字符

sys模块

import sys

    print(sys.path)
#['D:\\python10.20',
# 'D:\\python10.20',
# 'D:\\PyCharm 2021.3.3\\plugins\\python\\helpers\\pycharm_display',
# 'D:\\python38\\python38.zip',
# 'D:\\python38\\DLLs',
# 'D:\\python38\\lib',
# 'D:\\python38',
# 'D:\\python38\\lib\\site-packages',
# 'D:\\PyCharm 2021.3.3\\plugins\\python\\helpers\\pycharm_matplotlib_backend']
#获取执行文件的sys.path
sys.getrecursionlimit(2000)
#修改python解释器的默认最大深度为2000
print(sys.version)
#3.8.6 python解释器的版本
print(sys.platform)
# win32 平台信息 (了解即可)
res = sys.argv
if len(res) != 3:
print('执行命令缺少了用户名或密码')
else:
username = res[1]
password = res[2]
if username == 'jason' and password == '123':
print('jason您好 文件正常执行')
else:
print('您不是jason无权执行该文件')

json模块(重要)

json 模块也成为序列化模块 序列化可以打破语言限制实现不同的编程语言之间数据交互

json 格式数据的作用

![313e7084b23e852d42df7ffcc1af07b](C:\Users\李宗月\AppData\Local\Temp\WeChat Files\313e7084b23e852d42df7ffcc1af07b.png)

json格式数据的形式
字符串类型并且是双引号
json相关操作
针对数据:
json.dumps()
#将某一个数据类型转成json类型的字符串
json.loads()
#反序列化 将json格式化的字符串转成其他格式
针对文件:
json.dump()
#将某一个数据类型转成json类型的字符串 并写入文件 要有一个文件对象
json.load()
#读取文件中的json格式化数据类型并反序列化成数据类型 user_dict = {'name': 'jason', 'pwd': 123}
'''将字典写入文件并且取出来之后还可以是字典'''
# with open(r'b.txt', 'w', encoding='utf8') as f:
# f.write(str(user_dict))
# with open(r'b.txt','r',encoding='utf8') as f:
# data = f.read()
# print(data, type(data))
with open(r'b.txt','w',encoding='utf8') as f:
json_str = json.dumps(user_dict) # '{}' 序列化:数据类型>>>json格式字符串
f.write(json_str)
json.dump(user_dict, f) # 将数据序列化并写入文件
with open(r'b.txt', 'r', encoding='utf8') as f:
json_str = f.read()
json_dict = json.loads(json_str) # 反序列化:json格式字符串>>>数据类型
print(json_dict, type(json_dict))
res = json.load(f) # 读取文件中json格式数据并反序列化成数据类型
print(res, type(res))
for line in f:
print(json.loads(line))

json模块实战

import os
import json
base_dir = os.path.dirname(__file__)
#获取执行文件所在的目录路径
db_dir = os.path.join(base_dir,'db')
#把执行文件的目录路径和db目录的路径拼接在一起
if not os.path.isdir(db_dir):
#判断db_dir路径是否是目录
os.mkdir(db_dir)
#创建db_dir目录
username= input('name:')
password= input('pwd:')
#获取用户信息
user_file_path=os.path.join(db_dir,f'{username}.json')
#把db_dir文件和获取的用户名拼接在一起 转成json类型
user_dict={
'username':username,
'password':password,
'account':1500,
'shop_car':[]
}
user_file_path=os.path.join(db_dir,f'{username}.json')
with open(user_file_path,'w',encoding='utf8')as f:
json.dump(user_dict,f)
username = input('username:')
if not os.path.isfile(user_file_path):
print('用户名错误')
else:
password=input('pwd:')
with open(user_file_path,'r',encoding='utf8')as f:
real_user_dict = json.load(f)
if password == real_user_dict.get('password'):
print('登陆成功')
else:
print('密码错误')

os 模块 sys模块 json模块的更多相关文章

  1. python进阶之路18 os、sys、json模块

    os模块与sys模块 os模块主要与操作系统打交道 sys模块主要与python解释器打交道 os模块(重要) os模块主要与代码运行所在的操作系统打交道 import os os.path.spli ...

  2. python 正则,os,sys,hashlib模块

    简单的小算法 random随机获取数据 import random def getrandata(num): a=[] i= while i<num: a.append(random.randi ...

  3. 023--python os、sys、json、pickle、xml模块

    一.os模块 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 >>> os.getcwd() 'C:\\Python36' os.chdir(&quo ...

  4. python基础--常用的模块(collections、time、datetime、random、os、sys、json、pickle)

    collection模块: namedtuple:它是一个函数,是用来创建一个自定义的tuple对象的,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素.所以我们就可以 ...

  5. 第九节:os、sys、json、pickle、shelve模块

    OS模块: os.getcwd()获取当前路径os.chdir()改变目录os.curdir返回当前目录os.pardir()父目录os.makedirs('a/b/c')创建多层目录os.remov ...

  6. os、sys、json、subprocess模块

    今日内容概要 1.os模块 2.sys模块 3.json模块 4.subprocess模块 今日内容详细 os模块 """该模块主要是跟操作系统打交道"&quo ...

  7. python之模块(os、sys、json、subprocess)

    目录 os模块 sys模块 json模块 subprocess模块 os模块 os模块主要是与操作系统打交道. 导入os模块 import os 创建单层文件夹,路径必须要存在 os.mkdir(路径 ...

  8. python(31)——【sys模块】【json模块 & pickle模块】

    一.sys模块 import sys sys.argv #命令行参数List,第一个元素是程序本身路径 sys.exit() #退出程序,正常退出时exit(0) sys.version #获取pyt ...

  9. Python内置模块之time、random、hashlib、OS、sys、UUID模块

    Python常用模块 1.time模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间 ...

  10. Python之常用模块(re,时间,random,os,sys,序列化模块)(Day20)

    一.时间模块 #常用方法 1.time.sleep(secs) (线程)推迟指定的时间运行.单位为秒. 2.time.time() 获取当前时间戳 在Python中表示时间的三种方式:时间戳,元组(s ...

随机推荐

  1. 齐博x2模型里边钩子的创建与使用

    在模型里边的钩子创建与使用方法跟在控制器里边的钩子创建及使用方法是有所区别的在模型里边创建的钩子,你可以理解为执行一个函数,是无法调用模型里边的类的方法及属性的.比如系统文件\application\ ...

  2. 3.Task对象

    Task对象 用于调度或并发协程对象 在事件循环中可以添加多个任务   创建task对象三种方式 创建task对象可以让协程加入事件循环中等待被调度执行 3.7版本之后加入asyncio.create ...

  3. 优雅的写好Vue项目代码 — 路由拆分、Vuex模块拆分、element按需加载

    目录 路由的拆分 VUEX模块拆分 Element UI库按需加载的优雅写法 路由的拆分 项目较大路由较多时,路由拆分是一个不错的代码优化方案,按不同业务分为多个模块,结构清晰便于统一管理. requ ...

  4. 洛谷 P6573 [BalticOI 2017] Toll 题解

    Link 算是回归OI后第一道自己写的题(考CSP的时候可没回归) 写篇题解纪念一下 题目大意: \(n\) 个点,\(m\) 条单向边,每条边的两端点 \(x\),\(y\)必定满足 \(\left ...

  5. mysql网上知识

    MySQL学习笔记 登录和退出MySQL服务器 # 登录MySQL $ mysql -u root -p12345612 # 退出MySQL数据库服务器 exit; 基本语法 -- 显示所有数据库 s ...

  6. Java安全之动态加载字节码

    Java字节码 简单说,Java字节码就是.class后缀的文件,里面存放Java虚拟机执行的指令. 由于Java是一门跨平台的编译型语言,所以可以适用于不同平台,不同CPU的计算机,开发者只需要将自 ...

  7. ui自动化测试数据复原遇到的坑——2、python连接informix时pytest报致命错误Windows fatal exception: access violation

    python连接informix只能通过jdbc(需要先部署java环境.我试过到IBM上下载ODBC但结局是失败的),在执行pytest时发现有一串报错(大致是下面的这样): Windows fat ...

  8. JAVA 用分苹果来理解本题

    思路 其实这是一道非常经典的分苹果问题:有m个一样的苹果和n个一样的盘子,把苹果放盘子里,每个盘子允许0-m个苹果,求问有多少种分法? 与本题的共通之点在于,输入的正整数可以看成m个苹果,拆分出的加数 ...

  9. Codeforces Round #836 (Div. 2) A-D

    比赛链接 A 题意 给一个字符串 \(s\) ,对其加倍,即每个字符后面追加一个相同字符. 加倍后可以重排列,要求构造一个回文串. 题解 知识点:构造. 既然可以重排列了,那顺序是随意的了,直接翻转加 ...

  10. day28 BOM浏览器对象 & 定时事件与Cookie & (视频卷子讲解)

    3.10 BOM浏览器对象模型 3.10.1 window对象 所有浏览器都支持window对象,它表示浏览器窗口: | 属性 | history 网页历史记录 返回History只读对象 locat ...