从零开始的python基础教程(2)

news2024/11/28 17:44:14

九、Python Standard Library

在这里插入图片描述

1、Paths

from pathlib import Path

# Windows
Path("C:\\Program Files\\Microsoft")
# Or
Path(r"C:\Program Files\Microsoft")

# Mac
Path("/usr/local/bin")

Path() # Current
Path("ecommerce/__init__.py") # Subfolder
Path() / "ecommerce" / "__init__.py" # Combine: pathlib重载了除法运算符
Path.home() # get the home directory of the current user???
from pathlib import Path

path = Path("ecommerce/__init__.py")
path.exists()
path.is_file()
path.is_dir()
print(path.name)
print(path.stem)
print(path.suffix)
print(path.parent)
path1 = path.with_name("file.txt")
print(path1.absolute())
path2 = path.with_suffix(".txt")
print(path2)
__init__.py
__init__
.py
ecommerce
/Users/XXX/PycharmProjects/pythonProject1/ecommerce/file.txt
ecommerce/__init__.txt

2、Working With Directories

path.iterdir(): get the list of files and directories

from pathlib import Path

path = Path("ecommerce")

for p in path.iterdir():
    print(p)

print("========================")

paths = [p for p in path.iterdir()]
print(paths)

print("========================")

paths = [p for p in path.iterdir() if p.is_dir()]
print(paths)
ecommerce/shopping
ecommerce/__init__.py
ecommerce/__pycache__
ecommerce/customer
========================
[PosixPath('ecommerce/shopping'), PosixPath('ecommerce/__init__.py'), PosixPath('ecommerce/__pycache__'), PosixPath('ecommerce/customer')]
========================
[PosixPath('ecommerce/shopping'), PosixPath('ecommerce/__pycache__'), PosixPath('ecommerce/customer')]
from pathlib import Path

path = Path("ecommerce")

py_files = [p for p in path.glob("*.py")]
print(py_files)

print("========================")

py_files = [p for p in path.rglob("*.py")]
print(py_files)
[PosixPath('ecommerce/__init__.py')]
========================
[PosixPath('ecommerce/__init__.py'), PosixPath('ecommerce/shopping/sales.py'), PosixPath('ecommerce/shopping/__init__.py'), PosixPath('ecommerce/customer/__init__.py'), PosixPath('ecommerce/customer/contact.py')]

3、Working With Files

from pathlib import Path
from time import ctime

path = Path("ecommerce/__init__.py")

# path.exists()
# path.rename("init.txt")
# path.unlink()
print(ctime(path.stat().st_ctime))

print(path.read_text())
# path.write_text("...")
# path.write_bytes()
Thu Feb  2 23:54:03 2023
print("Ecommerce initialized")

4、Working with Zip Files

from pathlib import Path
from zipfile import ZipFile

zip = ZipFile("files.zip", "w") # This statement will create this file in our current folder
for path in Path("ecommerce").rglob("*.*"): # All
    zip.write(path)
zip.close()

But if something goes wrong here, a few statement might not be called
So we should either use a try finally block
Or the With statement which is shorter and clear

from pathlib import Path
from zipfile import ZipFile

with ZipFile("files.zip", "w") as zip:  # This statement will create this file in our current folder
    for path in Path("ecommerce").rglob("*.*"):  # All
        zip.write(path)

在这里插入图片描述

from pathlib import Path
from zipfile import ZipFile

# Because we only want to read from it, we're not going to open this in write mode!!!!
with ZipFile("files.zip") as zip:
    print(zip.namelist())
['ecommerce/__init__.py', 'ecommerce/shopping/sales.py', 'ecommerce/shopping/__init__.py', 'ecommerce/shopping/__pycache__/sales.cpython-310.pyc', 'ecommerce/shopping/__pycache__/__init__.cpython-310.pyc', 'ecommerce/__pycache__/__init__.cpython-310.pyc', 'ecommerce/customer/__init__.py', 'ecommerce/customer/contact.py', 'ecommerce/customer/__pycache__/contact.cpython-310.pyc', 'ecommerce/customer/__pycache__/__init__.cpython-310.pyc']
from pathlib import Path
from zipfile import ZipFile

# Because we only want to read from it, we're not going to open this in write mode!!!!
with ZipFile("files.zip") as zip:
    info = zip.getinfo("ecommerce/__init__.py")
    print(info.file_size)
    print(info.compress_size)
    zip.extractall("extract")  # Then we will have this extract directory with the content

30
30

在这里插入图片描述

5、Working with CSV Files

comma

import csv

# file = open("data.csv", "w")
# file.close()

with open("data.csv", "w") as file:
    writer = csv.writer(file)
    writer.writerow(["transaction_id", "product_id", "price"])
    writer.writerow([1000, 1, 5])
    writer.writerow([1001, 2, 15])

在这里插入图片描述

import csv


with open("data.csv") as file:
    reader = csv.reader(file)
    print(list(reader))
    for row in reader:
        print(row)

只能得到:

[['transaction_id', 'product_id', 'price'], ['1000', '1', '5'], ['1001', '2', '15']]

Because this reader object has an index or a position that is initially set to the beginning of the file, after list(reader) , that position goes to the end of the file. That is why we cannot iterate this reader twice
So

import csv


with open("data.csv") as file:
    reader = csv.reader(file)
    # print(list(reader))
    for row in reader:
        print(row)
['transaction_id', 'product_id', 'price']
['1000', '1', '5']
['1001', '2', '15']

6、Working with JSON Files

JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write.

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

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

相关文章

AXI实战(一)-为AXI总线搭建简单的仿真测试环境

AXI实战(一)-搭建简单仿真环境 看完在本文后,你将可能拥有: 一个可以仿真AXI/AXI_Lite总线的完美主端(Master)或从端(Slave)一个使用SystemVerilog仿真模块的船信体验小何的AXI实战系列开更了,以下是初定的大纲安排: 欢迎感兴趣的朋友关注并支持,以下为正文部分 文章目录…

node.js笔记-模块化(commonJS规范),包与npm(Node Package Manager)

目录 模块化 node.js中模块的分类 模块的加载方式 模块作用域 向外共享模块作用域中的成员 向外共享成员 包与npm(Node package Manager) 什么是包? 包的来源 为什么需要包? 查找和下载包 npm下载和卸载包命令 配置np…

【数据结构】二叉排序树——平衡二叉树的调整

文章目录前置概念一、构造平衡二叉树的基本思想二、一个示例三、平衡二叉树的调整细节(1)LL型(顺时针 )举例(2)RR型(逆时针)(3)LR型(先逆时针再顺…

测试左移之需求质量

测试左移的由来 缺陷的修复成本逐步升高 下面是质量领域司空见惯的一张图,看图说话,容易得出:大部分缺陷都是早期引入的,同时大部分缺陷都是中晚期发现的,而缺陷发现的越晚,其修复成本就越高。因此&#…

【Vue3 组件封装】vue3 轮播图组件封装

文章目录轮播图功能-获取数据轮播图-通用轮播图组件轮播图-数据渲染轮播图-逻辑封装轮播图功能-获取数据 目标: 基于pinia获取轮播图数据 核心代码: (1)在types/data.d.ts文件中定义轮播图数据的类型声明 // 所有接口的通用类型 export typ…

linux(centos7.6)docker

官方文档:https://docs.docker.com/engine/install/centos/1安装之前删除旧版本的docker2安装yum install-y yum-utils3配置yum源 不用官网的外国下载太慢 推荐阿里云yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.r…

笔记_js运算符

目录二进制相关运算符移位运算符<<>>&#xff5c;(位或运算)参考文档二进制相关运算符 移位运算符 移位运算就是对二进制进行有规律的移位。 tips:进制转换文档链接 << “<<”运算符执行左移位运算。在移位运算过程中&#xff0c;符号位始终保持不变…

jvm mat分析dump文件

jvm调优中&#xff0c;经常使用dump来分析是否存在大对象导致频繁full gc&#xff0c;以下为使用步骤&#xff1a;一、获得服务进程二、生成dump文件jmap -dump:formatb,filexxx.dump pid三、下载mat工具地址:https://www.eclipse.org/mat/downloads.php注意&#xff0c;12及以…

网络安全实验室5.上传关

5.上传关 1.请上传一张jpg格式的图片 url&#xff1a;http://lab1.xseclab.com/upload1_a4daf6890f1166fd88f386f098b182af/ 上传一张后缀名为jpg的图片&#xff0c;上传抓包修改后缀名为别的&#xff0c;s或者直接删掉&#xff0c;放包 得到key is IKHJL9786#$%^& 2.请…

再说多线程(六)——Thread生命周期

前面一直在用Thread介绍多线程任务&#xff0c;本节对线程类Thread的生命周期进行简单的梳理。线程状态对于一个线程来说&#xff0c;有以下几种状态&#xff1a;Unstarted(New) StateRunnable State(Ready to Run)Running StateNot Runable StateDead State这几种状态的转换关…

chatgpt国内能用的镜像与api请求样例

chatgpt去年刚出来时我就到openai注册了账号&#xff0c;必须用国外的线路才能注册&#xff0c;正常注册不了&#xff0c;注册完要用国外手机接收验证码&#xff0c;才能使用&#xff0c;我卡到验证码就没继续用了&#xff0c;昨晚&#xff0c;找了几个国内的镜像&#xff0c;用…

课程回顾|以智能之力,加速媒体生产全自动进程

本文内容整理自「智能媒体生产」系列课程第二讲&#xff1a;视频AI与智能生产制作&#xff0c;由阿里云智能视频云高级技术专家分享视频AI原理&#xff0c;AI辅助媒体生产&#xff0c;音视频智能化能力和底层原理&#xff0c;以及如何利用阿里云现有资源使用音视频AI能力。课程…

PyTorch学习笔记:nn.Sigmoid——Sigmoid激活函数

PyTorch学习笔记&#xff1a;nn.Sigmoid——Sigmoid激活函数 torch.nn.Sigmoid()功能&#xff1a;逐元素应用Sigmoid函数对数据进行激活&#xff0c;将元素归一化到区间(0,1)内 函数方程&#xff1a; Sigmoid(x)σ(x)11e−xSigmoid(x)\sigma(x)\frac1{1e^{-x}} Sigmoid(x)σ(…

基于python下selenium库实现交互式图片保存操作(批量保存浏览器中的图片)

Selenium是最广泛使用的开源Web UI&#xff08;用户界面&#xff09;自动化测试套件之一&#xff0c;可以通过编程与浏览量的交互式操作对网页进行自动化控制。基于这种操作进行数据保存操作&#xff0c;尤其是在图像数据的批量保存上占据优势。本博文基于selenium 与jupyterla…

Python基础01

Python基础 1、编程环境&#xff1a;IDLE 1.1使用 1、文件创建&#xff1a;File —> New File 2、文件打开&#xff1a;File —> Open 3、文件保存&#xff1a; File —> Save 2、输入输出 2.1输入&#xff1a;input() 语法&#xff1a;input(“想要表达的内容”…

在阿里当外包,是一种什么工作体验?

上周和在阿里做外包的朋友一起吃饭&#xff0c;朋友吃着吃着&#xff0c;就开启了吐槽模式。 他一边喝酒一边说&#xff0c;自己现在做着这份工作&#xff0c;实在看不到前途。 看他状态不佳&#xff0c;问了才知道&#xff0c;是手上的项目太磨人。 他们现在做的项目&#…

大数据---Hadoop安装Hadoop简易版

编写自动安装Hadoop的shell脚本 完整流程: 大数据—Hadoop安装教程&#xff08;二&#xff09; 文章目录编写自动安装Hadoop的shell脚本上传压缩包编写shell脚本vim hadoopautoinstall.sh运行上传压缩包 在opt目录下创建连个目录install和soft 将压缩包上传到install目录下 …

docker file和compose

文章目录1.dockerfile&#xff08;单机脚本&#xff09;1.概念2.原理3.dockerfile核心四步4.命令2.docker compose1.概念2.注意事项3.常用字段4.常用命令1.dockerfile&#xff08;单机脚本&#xff09; 1.概念 通过脚本&#xff0c;生成一个镜像&#xff0c;并运行对应的容器…

简介Servlet

目录 一、maven中心库 二、简介Servlet 三、实现Servlet动态页面 1、创建一个maven项目 2、引入依赖 3、创建目录结构 4、编写Servlet代码 5、打包 6、部署 7、验证程序 四、Servlet的运行原理 五、Tomcat伪代码 1、Tomcat初始化 a、让Tomcat先从指定的目录…

C语言学习_DAY_2_变量的定义_输入与输出

高质量博主&#xff0c;点个关注不迷路&#x1f338;&#x1f338;&#x1f338;&#xff01; 目录 I. 变量的定义 II. 变量的赋值 III. 输出 IV. 输入 I. 变量的定义 首先&#xff0c;我们新建一个.c文件在Dev C中&#xff0c;并把之前定义好的程序框架放进去。 此时我…