Python学习第八天
查看函数参数
操作之前给大家讲一个小技巧:如何查看函数的参数(因为python的底层源码是C语言并且不是开放的,也一直困扰着刚学习的我,这个参数叫什么名之类的看doc又总是需要翻译挺麻烦的)。
比如我们下面要说到的open函数
dir函数查看
dir() 函数可以列出对象的所有属性和方法。(了解就行不用深入)
# 使用 dir 查询函数有哪些属性和方法
print(dir(open))
'''
['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__',
'__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__',
'__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__text_signature__']
'''
# 紧接着使用 open上面查询出来的方法即可
print(open.__name__)# 和直接单机open函数过去的doc没啥区别 不会出来详细的参数
print(open.__doc__)
help函数查看
help() 函数可以显示函数的详细文档,包括参数说明和用法(这个比较好用会常用)。
# 使用 help函数会出来详细的文档 最起码知道这个参数的名称 以及那些参数
help(open)
'''截取部分open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
'''
inspect函数查看
inspect 模块可以用于获取函数的签名信息,包括参数列表和默认值(这个更好用也常用)。
# 获取 open 函数的签名
import inspect
signature = inspect.signature(open)
print(signature)
'''只输出(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
'''
具体支持参数查询:比如你会好奇encoding的参数有哪些?除了utf-8其他的支持什么?点击链接去查询python官网doc部分这个是encoding编码
文件
文件操作是Python编程中的基础技能之一。通过掌握这些基本操作,你可以轻松地读取、写入和处理文件,文件是以计算机硬盘为载体存储在计算机上的信息集合。
操作函数
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数说明
- file:文件路径
- mode:模式
- buffering:设置缓冲区大小
- encoding:编码
常见模式
| 模式字符 | 描述 | 文件存在时 | 文件不存在时 |
|---|---|---|---|
'r' | 只读模式(默认模式)。 | 打开文件并从头读取。 | 抛出 FileNotFoundError。 |
'w' | 写入模式。 | 清空文件内容并从头写入。 | 创建新文件。 |
'x' | 独占创建模式。 | 抛出 FileExistsError。 | 创建新文件。 |
'a' | 追加模式。 | 在文件末尾追加内容。 | 创建新文件。 |
'b' | 二进制模式(与其他模式组合使用,如 'rb' 或 'wb')。 | 以二进制格式操作文件。 | 以二进制格式操作文件。 |
't' | 文本模式(默认模式,与其他模式组合使用,如 'rt' 或 'wt')。 | 以文本格式操作文件。 | 以文本格式操作文件。 |
'+' | 读写模式(与其他模式组合使用,如 'r+' 或 'w+')。 | 打开文件并允许读写。 | 打开文件并允许读写。 |
组合模式
| 模式组合 | 描述 | 文件存在时 | 文件不存在时 |
|---|---|---|---|
'rb' | 二进制只读模式。 | 打开文件并读取二进制数据。 | 抛出 FileNotFoundError。 |
'wb' | 二进制写入模式。 | 清空文件并写入二进制数据。 | 创建新文件。 |
'ab' | 二进制追加模式。 | 在文件末尾追加二进制数据。 | 创建新文件。 |
'r+' | 读写模式(文件必须存在)。 | 打开文件并允许读写。 | 抛出 FileNotFoundError。 |
'w+' | 读写模式(清空文件内容)。 | 清空文件并允许读写。 | 创建新文件。 |
'a+' | 读写追加模式。 | 打开文件并允许读写,写入时追加到文件末尾。 | 创建新文件。 |
'rb+' | 二进制读写模式(文件必须存在)。 | 打开文件并允许读写二进制数据。 | 抛出 FileNotFoundError。 |
'wb+' | 二进制读写模式(清空文件内容)。 | 清空文件并允许读写二进制数据。 | 创建新文件。 |
'ab+' | 二进制读写追加模式。 | 打开文件并允许读写二进制数据,写入时追加到文件末尾。 | 创建新文件。 |
读取文件
有三种方式读取文件:
-
read():读取整个文件内容。 -
readline():读取文件的一行。 -
readlines():读取所有行并返回一个列表。
注意第二个参数为r即read读取
# 文件操作
# read():读取整个文件内容。放在于当前目录下一致即可如果是其他路劲需要指定(我的文件中有中文所以需要指定编码格式为utf_8)写成UTF-8 utf-8 U8, UTF, utf8, cp65001都支持 在我写的文档链接
with open('python_test.txt', 'r',encoding='cp65001') as file:content = file.read()print(content)
'''输出结果这是第一行含有中文的python测试txt这是第二行含有中文的python测试txt这是第三行含有中文的python测试txt
'''# readline():读取文件的一行。
with open('python_test.txt', 'r',encoding='cp65001') as file:for line in file:print(line.strip()) # 默认有换行符.strip()去除换行符
'''输出结果这是第一行含有中文的python测试txt这是第二行含有中文的python测试txt这是第三行含有中文的python测试txt
'''
# readlines():读取所有行并返回一个列表。
with open('python_test.txt', 'r',encoding='cp65001') as file:lines = file.readlines() # ['这是第一行含有中文的python测试txt\n', '这是第二行含有中文的python测试txt\n', '这是第三行含有中文的python测试txt']for line in lines:print(line.strip())
'''输出结果这是第一行含有中文的python测试txt这是第二行含有中文的python测试txt这是第三行含有中文的python测试txt
'''
写入文件
注意写入以'w'模式打开文件会覆盖文件内容,如果文件不存在则会创建新文件
-
write():写入单行。
-
write
lines():写入多行。
注意第二个参数为w即write写
# write 写入单行
with open('python_test.txt', 'w',encoding='cp65001') as file:file.write("测试啊这是我写入的一行代码") #file.write("测试啊这是我写入的二行代码") # 会覆盖上面的代码# writelines 写入多行
with open('python_test.txt', 'w',encoding='cp65001') as file:file.writelines(["测试啊这是我写入的一行代码\n","测试啊这是我写入的二行代码"])
'''输出结果测试啊这是我写入的一行代码测试啊这是我写入的二行代码
'''
追加内容
如果你想在文件末尾追加内容而不是覆盖文件,可以使用'a'模式打开文件。
# 追加内容修改模式即可
with open('python_test.txt', 'a',encoding='U8') as file:file.writelines(["\n测试啊这是我写入的一行代码\n","测试啊这是我写入的二行代码"])
'''输出结果测试啊这是我写入的一行代码测试啊这是我写入的二行代码
'''
关闭文件
使用with语句可以自动关闭文件,但如果你不使用with语句,记得手动关闭文件。
# 不使用with需要手动关闭流 类似于java中的流处理
iofile = open('python_test.txt', 'r',encoding='utf-8')
print(iofile.read())
iofile.close()
删除文件
import os
# 删除文件
if os.path.exists('python_test.txt'):# 补充创建的话是mkdir 改名的话也很好理解renameos.remove('python_test.txt')print('删除文件')
else:print('文件不存在了')
处理二进制文件
对于二进制文件(如图片、视频等),你可以使用'rb'或'wb'模式来读取和写入。选对模式即可。
# 读取二进制文件
with open('image.png', 'rb') as file:image_data = file.read()# 写入二进制文件
with open('image2.png', 'wb') as file:file.write(image_data)
补充os模块函数应用
| 函数名 | 功能描述 | 参数说明 | 返回值或行为 |
|---|---|---|---|
os.getcwd() | 获取当前工作目录的路径。 | 无参数。 | 返回当前工作目录的绝对路径(字符串)。 |
os.chdir(path) | 改变当前工作目录到指定路径。 | path:目标目录的路径(字符串)。 | 无返回值。如果路径不存在或不可访问,抛出 FileNotFoundError 或 OSError。 |
os.listdir(path) | 返回指定目录下的所有文件和子目录的列表。 | path:目标目录的路径(字符串)。默认为当前目录(.)。 | 返回一个包含文件和目录名称的列表(列表)。如果路径无效,抛出 OSError。 |
os.mkdir(path) | 创建单级目录。 | path:要创建的目录路径(字符串)。 | 无返回值。如果目录已存在或路径无效,抛出 FileExistsError 或 OSError。 |
os.makedirs(path) | 递归创建多级目录。 | path:要创建的目录路径(字符串)。 | 无返回值。如果目录已存在或路径无效,抛出 FileExistsError 或 OSError。 |
os.rmdir(path) | 删除单级空目录。 | path:要删除的目录路径(字符串)。 | 无返回值。如果目录非空或路径无效,抛出 OSError。 |
os.removedirs(path) | 递归删除多级空目录。 | path:要删除的目录路径(字符串)。 | 无返回值。如果目录非空或路径无效,抛出 OSError。 |
os.remove(path) | 删除指定文件。 | path:要删除的文件路径(字符串)。 | 无返回值。如果文件不存在或路径无效,抛出 FileNotFoundError 或 OSError。 |
os.rename(src, dst) | 将文件或目录从 src 重命名为 dst。 | src:源文件或目录路径(字符串)。dst:目标文件或目录路径(字符串)。 | 无返回值。如果路径无效或目标已存在,抛出 OSError。 |
os.stat(path) | 获取文件或目录的状态信息。 | path:目标文件或目录路径(字符串)。 | 返回一个 os.stat_result 对象,包含文件大小、修改时间等信息。 |
os.system(command) | 在子 shell 中执行系统命令。 | command:要执行的命令(字符串)。 | 返回命令的退出状态码(整数)。通常 0 表示成功,非 0 表示失败。 |
相关文章:
Python学习第八天
查看函数参数 操作之前给大家讲一个小技巧:如何查看函数的参数(因为python的底层源码是C语言并且不是开放的,也一直困扰着刚学习的我,这个参数叫什么名之类的看doc又总是需要翻译挺麻烦的)。 比如我们下面要说到的op…...
美股回测:历史高频分钟数据的分享下载与策略解析20250305
美股回测:历史高频分钟数据的分享下载与策略解析20250305 在金融分析和投资决策的精细化过程中,美股历史分钟高频数据发挥着至关重要的作用。这些数据以其详尽性和精确性,记录了股票每分钟的价格波动和成交量变化,为投资者提供了…...
【仿muduo库one thread one loop式并发服务器实现】
文章目录 一、项目介绍1-1、项目总体简介1-2、项目开发环境1-3、项目核心技术1-4、项目开发流程1-5、项目如何使用 二、框架设计2-1、功能模块划分2-1-1、SERVER模块2-1-2、协议模块 2-2、项目蓝图2-2-1、整体图2-2-2、模块关系图2-2-2-1、Connection 模块关系图2-2-2-2、Accep…...
服务流程设计和服务或端口重定向及其websocket等应用示例
服务流程设计和服务或端口重定向及其websocket等应用示例 目录 服务或端口重定向的服务设计和websocket等应用示例 一、通用请求控制流程 1.1、入口 1.2、所有GET请求首先预检控制单元 1.3、http请求会分别自动307重定向 1.4、所有请求首先执行跨源控制单元 1.5、然后…...
【数据库】关系代数
关系代数 一、关系代数的概念二、关系代数的运算2.1 并、差、交2.2 投影、选择2.3 笛卡尔积2.4 连接2.5 重命名2.6 优先级 一、关系代数的概念 关系代数是一种抽象的数据查询语言用对关系的运算来表达查询 运算对象:关系运算符:4类运算结果:…...
ubuntu20 安装python2
1. 确保启用了 Universe 仓库 在某些情况下,python2-minimal 包可能位于 Universe 仓库中。你可以通过以下命令启用 Universe 仓库并更新软件包列表: bash复制 sudo add-apt-repository universe sudo apt update 然后尝试安装: bash复制…...
MySQL无法连接到本地localhost的解决办法2024.11.8
问题描述:我的MySQL可以远程连接服务器,但无法连接自己的localhost。 错误提示: 2003 - Cant connet to MySQL server on localhost(10061 "Unknown error")查找问题原因: 1. 检查环境变量是否正确:发现没…...
【Leetcode 每日一题】1328. 破坏回文串
问题背景 给你一个由小写英文字母组成的回文字符串 p a l i n d r o m e palindrome palindrome,请你将其中 一个 字符用任意小写英文字母替换,使得结果字符串的 字典序最小 ,且 不是 回文串。 请你返回结果字符串。如果无法做到࿰…...
最新Spring Security实战教程(一)初识Spring Security安全框架
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…...
Docker的常用镜像
Docker的常用镜像命令主要包括镜像的查看、搜索、拉取、删除、构建等操作,以下是综合多个来源的总结: 一、基础镜像操作 查看本地镜像 docker images• 显示所有本地镜像,包含仓库名(REPOSITORY)、标签(TAG…...
告别GitHub连不上!一分钟快速访问方案
一、当GitHub抽风时,你是否也这样崩溃过? 😡 npm install卡在node-sass半小时不动😭 git clone到90%突然fatal: early EOF🤬 改了半天hosts文件,第二天又失效了... 根本原因:传统代理需要复杂…...
MapReduce 深度解析:原理与案例实战
在大数据时代,数据量的爆炸性增长对数据处理提出了前所未有的挑战。MapReduce 作为一种编程模型和并行处理框架,能够让我们在分布式环境下高效处理海量数据。本文将详细讲解 MapReduce 的基本原理、工作流程,并通过一个案例来展示如何应用这种…...
Android中的Fragment是什么以及它有哪些生命周期方法
Android中的Fragment介绍 Fragment,直译为“碎片”或“片段”,是Android中的一种组件,可以看作是Activity的模块化部分。它可以在一个Activity中承载一部分用户界面和逻辑,并能被多个Activity复用。通过Fragment,开发…...
Leetcode 1477. 找两个和为目标值且不重叠的子数组 前缀和+DP
原题链接: Leetcode 1477. 找两个和为目标值且不重叠的子数组 class Solution { public:int minSumOfLengths(vector<int>& arr, int target) {int narr.size();int sum0;int maxnINT_MAX;vector<int> dp(n,maxn);//dp[i]表示以索引i之前的满足要求…...
Ubuntu 22.04安装NVIDIA A30显卡驱动
一、安装前准备 1.禁用Nouveau驱动 Ubuntu默认使用开源Nouveau驱动,需要手动禁用: vim /etc/modprobe.d/blacklist-nouveau.conf # 添加以下内容: blacklist nouveau options nouveau modeset0 # 更新内核并重启: update-initr…...
R语言绘图:韦恩图
韦恩分析 韦恩分析(Venn Analysis)常用于可视化不同数据集之间的交集和并集。维恩图(Venn diagram),也叫文氏图、温氏图、韦恩图、范氏图,用于显示元素集合重叠区域的关系型图表,通过图形与图形…...
Stable Diffusion Prompt编写规范详解
Stable Diffusion Prompt编写规范详解 一、语法结构规范 (一)基础模板框架 [质量强化] [主体特征] [环境氛围] [风格控制] [镜头参数]质量强化:best quality, ultra detailed, 8k resolution主体特征:(1girl:1.3), long …...
大模型推理框架Triton使用教程:从青铜到王者的修炼
1 相关预备知识 模型:包含了大量参数的一个网络(参数结构),体积10MB-10GB不等模型格式:相同的模型可以有不同的存储格式(可类比音视频文件),目前主流有torch、tf、onnx和trt&#x…...
C#+Halcon 检测稳定性提升的方式
前言 众所周知,C#是一个带垃圾回收机制的语言,开发过程中不需要考虑垃圾回收,你就可劲造吧。但我们在设计图像处理软件时,应时刻对图像等大内存资源进行管控,做到自行管控,及时释放,不应将其交…...
智谱AI-FunctionCall
智谱AI-FunctionCall 编写FuncationCall大模型的函数调用,先直观的感受一下的感受下FunctionCall的魅力 文章目录 智谱AI-FunctionCall[toc]1-参考网址2-思路整理3-代码拆件1-[非核心]两个业务函数2-[非核心]业务函数的JsonSchema定义3-[核心]FunctionCall的调用1-打…...
android亮灭屏流程分析
前言 亮灭涉及的东西非常多,因此单独写一个文档,进行详细说明,亮灭屏包括的东西不只是亮灭屏,还包括亮度调节、屏幕状态变化等东西。本文仅作学习使用,不涉及商业,侵权请联系删除。 framework层的学习链接…...
Docker Desktop常见问题记录
1.docker pull报错,无法连接https://registry-1.docker.io/v2/ 报错信息如下: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection(Client.Timeout exceeded …...
vscode+vue前端开发环境配置
目录 一、安装Vue二、使用vue新建项目 一、安装Vue 在node.js安装好之后, npm config set registry https://registry.npmmirror.com# 安装vue相关工具,webpack用来项目构建、打包、资源整合等。 npm install webpack -g# 安装vue-cli脚手架 npm insta…...
Qt5 C++ QMap使用总结
文章目录 功能解释代码使用案例代码解释注意事项代码例子参考 功能解释 QList<T> QMap::values() const Returns a list containing all the values in the map, in ascending order of their keys. If a key is associated with multiple values, all of its values wi…...
《解锁HarmonyOS NEXT高阶玩法:艺术图像识别功能开发全攻略》
在当今数字化时代,AI技术不断拓展其应用边界,为各行业带来前所未有的变革。在艺术领域,AI图像识别技术能够帮助艺术从业者、爱好者快速识别艺术品风格、作者,甚至挖掘艺术品背后的历史文化信息。本文将结合HarmonyOS NEXT API 12及…...
post get 给后端传参数
post 方式一 : data: params 作为请求体(Request Body)传递: 你已经展示了这种方式,通过data字段直接传递一个对象或数组。这种方式通常用于传递复杂的数据结构。dowmfrom: function (params) { return request({ u…...
Masscan下载Linux安装
masscan 是一款高速的端口扫描工具,能够在极短的时间内扫描大量IP地址和端口。以下是关于如何在Linux系统上下载并安装 masscan 的详细步骤。 ### 通过包管理器安装 对于一些Linux发行版,你可以直接使用系统的包管理器来安装 masscan。例如,…...
Hive-08之数据仓库之建模、分析
一、目标 掌握数据仓库基本概念熟悉数据仓库的模型建立 二、知识要点 1. 数据仓库基本介绍 英文名称为Data Warehouse,可简写为DW或DWH。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)…...
仿12306项目(4)
基本预定车票功能的开发 对于乘客购票来说,需要有每一个车次的余票信息,展示给乘客,供乘客选择,因此首个功能是余票的初始化,之后是余票查询,这两个都是控台端。对于会员端的购票,需要有余票查询…...
MySQL零基础教程16—表连接进阶
复习表别名 之前已经学习过,查询的时候可以使用as来对检索的列进行重命名,这样可以让sql更加简介,增强易读性(as可以省略) 此外,使用表别名还可以支持在一条select语句中,一个表是被多次使用 …...
