当前位置: 首页 > news >正文

Python的模块应用和文件I/O

Python

解释

  • Python是一种高级编程语言,以其简洁、易读和易用而闻名。它是一种通用的、解释型的编程语言,适用于广泛的应用领域,包括软件开发、数据分析、人工智能等。
  • python是一种解释型,面向对象、动态数据类型的高级程序设计语言,是一门开源免费的脚本编程语言。
    2020.1.1,停止Python2的更新。

特点

  • 简洁易读:Python采用清晰简洁的语法,使得代码易于阅读和理解。它使用缩进来表示代码块,而不是依赖于大括号,使得代码更具可读性。
  • 丰富的库和框架:Python拥有大量的标准库和第三方库,涵盖了各种领域的功能,例如Web开发、科学计算、数据分析等。这些库和框架可以帮助开发者快速构建应用程序。
  • 跨平台性:Python可以在多个操作系统上运行,包括Windows、Linux和MacOS等。这使得开发者可以轻松地在不同平台上部署和运行Python程序。
  • 动态类型:Python是一种动态类型语言,不需要提前声明变量类型。这简化了代码的编写和维护,并提供了更大的灵活性。
  • 广泛的应用领域:Python被广泛应用于各个领域,包括Web开发、数据分析、人工智能、科学计算、自动化脚本等。它被许多大型公司和组织采用,如Google、Facebook、Netflix等。
  • 强大的社区支持:Python拥有庞大的开发者社区,提供了丰富的教程、文档和开源项目。开发者可以从社区中获取帮助、分享经验,并使用已经开发的工具和库。

Python模块应用

  • Python模块是一个包含了函数、类和变量的文件,它可以被其他Python程序导入和使用。模块可以帮助我们组织和重用代码,使代码更加模块化和可维护。

  • Python标准库已经提供了许多内置模块,例如math用于数学计算,random用于生成随机数,os用于操作操作系统功能,datetime用于处理日期和时间等等。

  • 除了标准库模块,还有许多第三方模块可以通过包管理工具(如pip)安装和使用。这些第三方模块提供了各种功能和工具,例如数据分析、网络请求、图形界面开发、机器学习等等。

  • 要使用一个模块,首先需要将其导入到你的Python代码中。可以使用import关键字导入整个模块,或者使用from ... import ...语法导入模块中的特定函数、类或变量。

import math# 使用math模块中的函数
print(math.sqrt(25))  # 输出:5.0
print(math.pi)  # 输出:3.141592653589793# 使用from ... import ...语法导入特定函数
from math import pow, sinprint(pow(2, 3))  # 输出:8.0
print(sin(math.pi/2))  # 输出:1.0

Python创建模块

除了使用现有的模块,你也可以创建自己的模块,将相关的函数、类和变量封装在一个文件中,并在其他程序中进行导入和使用。

  • 打开一个文本编辑器,例如Notepad++Sublime TextPyCharm等。
  • 创建一个新的Python文件,并为其命名。模块的文件名应该以.py为后缀,例如mymodule.py
  • 在文件中编写你想要包含的函数、类和变量。这些代码将成为你的模块的内容。
# mymodule.pydef greet(name):print(f"Hello, {name}!")def add(a, b):return a + bpi = 3.14159

在这个示例中,我们定义了一个greet函数用于打印问候语,一个add函数用于计算两个数的和,以及一个变量pi存储圆周率的近似值。

  • 保存文件:现在已经创建了一个简单的模块。你可以在其他Python程序中使用这个模块,方法是使用import关键字导入它。
import mymodulemymodule.greet("Alice")  # 输出:Hello, Alice!
result = mymodule.add(3, 5)
print(result)  # 输出:8
print(mymodule.pi)  # 输出:3.14159
  • 也可以使用from ... import ...语法导入模块中的特定函数、类或变量。
from mymodule import greet, pigreet("Bob")  # 输出:Hello, Bob!
print(pi)  # 输出:3.14159
  • 为了使模块在导入时能够正确执行一些初始化代码,你可以在模块中使用特殊变量__name__来检查模块是作为主程序运行还是作为模块导入的。
# mymodule.pydef greet(name):print(f"Hello, {name}!")# 执行一些初始化代码
print("Initializing mymodule...")if __name__ == "__main__":# 当模块作为主程序运行时执行的代码greet("Alice")

这样,当直接运行mymodule.py时,会执行初始化代码并调用greet函数;而当你将mymodule作为模块导入到其他程序时,初始化代码部分不会被执行。

Python文件I/O

Python提供了丰富的文件输入/输出(I/O)操作功能,可以读取和写入文件。

打开文件

要打开文件,可以使用内置函数open(),并传递文件名和打开模式作为参数。打开模式可以是以下之一:

  • ‘r’:只读模式,用于读取文件(默认)。
  • ‘w’:写入模式,用于创建新文件或覆盖已有文件。
  • ‘a’:追加模式,用于在文件末尾添加内容。
  • ‘x’:独占创建模式,用于创建新文件,如果文件已存在则抛出错误。
  • ‘b’:二进制模式,用于处理二进制文件。
  • ‘t’:文本模式,用于处理文本文件(默认)。
# 打开文件以供读取
file = open('filename.txt', 'r')# 打开文件以供写入
file = open('filename.txt', 'w')# 打开文件以供追加
file = open('filename.txt', 'a')

读取文件内容

一旦文件打开,你可以使用不同的方法来读取文件内容。

  • 读取整个文件:可以使用read()方法来读取整个文件的内容。
file = open('filename.txt', 'r')
content = file.read()
print(content)
  • 逐行读取文件:使用readline()方法可以逐行读取文件内容。
file = open('filename.txt', 'r')
line = file.readline()
while line:print(line)line = file.readline()
  • 读取所有行:使用readlines()方法可以读取所有行,并将它们存储在一个列表中。
file = open('filename.txt', 'r')
lines = file.readlines()
for line in lines:print(line)

写入文件

  • 使用打开文件的写入模式(‘w’、'a’等),可以将数据写入文件。
# 写入单行
file = open('filename.txt', 'w')
file.write('Hello, World!')# 写入多行
file = open('filename.txt', 'w')
lines = ['Line 1\n', 'Line 2\n', 'Line 3\n']
file.writelines(lines)

关闭文件

  • 完成文件操作后,应该关闭文件以释放系统资源。可以使用close()方法来关闭文件。
file = open('filename.txt', 'r')# 进行文件操作
file.close()
  • 另一种更便捷的方式是使用with语句,它会在代码块执行完后自动关闭文件。
with open('filename.txt', 'r') as file:# 进行文件操作# 文件会在代码块结束后自动关闭

相关文章:

Python的模块应用和文件I/O

Python 解释 Python是一种高级编程语言,以其简洁、易读和易用而闻名。它是一种通用的、解释型的编程语言,适用于广泛的应用领域,包括软件开发、数据分析、人工智能等。python是一种解释型,面向对象、动态数据类型的高级程序设计…...

设计模式之依赖倒转原则

目录 1、 基本介绍 2、 应用实例 3、 依赖关系传递的三种方式 (1) 接口传递 (2) 构造方法传递 (3) setter方式传递 4、 注意事项和细节 1、 基本介绍 依赖倒转原则(Dependence Inversion Principle)是指: 高层模块不应该依赖低层模块,二者都应该依…...

Springboot启动后想要做某些事可以通过什么方法实现?

在Spring Boot应用中,如果你想在应用启动完成后执行一些特定的操作(例如缓存预热),可以实现CommandLineRunner或ApplicationRunner接口。这两个接口都提供了一个run方法,在Spring Boot应用上下文初始化完成后会被自动调…...

网络原理初识(2)

目录 一、协议分层 1、分层的作用 2、OSI七层模型 3、TCP / IP五层(或四层)模型 4、网络设备所在分层 5、网络分层对应 二、封装和分用 发送过程(封装) 1、应用层(应用程序) QQ 2、传输层 3、网络层 4、数据链路层 5、物理…...

【C++】每日一题 92 反转链表

给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 class ListNode { public:int val;ListNode* next;ListNode(int _val) {val _val;next nullptr;} };…...

算法D39 | 动态规划2 | 62.不同路径 63. 不同路径 II

今天开始逐渐有 dp的感觉了&#xff0c;题目不多&#xff0c;就两个 不同路径&#xff0c;可以好好研究一下 62.不同路径 本题大家掌握动态规划的方法就可以。 数论方法 有点非主流&#xff0c;很难想到。 代码随想录 视频讲解&#xff1a;动态规划中如何初始化很重要&#x…...

面试官:如何在 Spring Boot 启动的时候提前运行一些特定的代码

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:如何在 Spring Boot 启动的时候提前运行一些特定的代码 在Spring Boot启动的时候提前运行一些特定的代码可以通过实现ApplicationRunner接口、Com…...

力扣最热100题——56.合并区间

吾日三省吾身 还记得梦想吗 正在努力实现它吗 可以坚持下去吗 目录 吾日三省吾身 力扣题号&#xff1a;56. 合并区间 - 力扣&#xff08;LeetCode&#xff09; 题目描述 Java解法一&#xff1a;排序然后原地操作 具体代码如下 Java解法二&#xff1a;new一个list&#xf…...

docker学习(十四)docker搭建私服

docker私服搭建&#xff0c;配置域名访问&#xff0c;设置访问密码 启动registry docker run -d \-p 5000:5000 \-v /opt/data/registry:/var/lib/registry \registrydocker pull hello-world docker tag hello-world 127.0.0.1:5000/hello-world docker push 127.0.0.1:5000…...

基于BERTopic模型的英文20新闻数据集主题聚类及可视化

文章目录 bertopic介绍20 newsgroups dataset20 newsgroups数据集下载数据导入nltk数据处理bertopic模型构建模型训练运行模型可视化目前主题的一致性得分语料库建模bertopic介绍 BERTopic 是基于深度学习的一种主题建模方法。BERT 是一种用于 NLP 的预训练策略,它成功地利用…...

【Oracle之DataGuard的初步学习】

** 以下所有均是基于11G版本的 ** 一、DataGuard的部署方式 DG的部署最常用的方式就是直接在备库端部署一个空库然后再设置参数&#xff0c;但是这样做在初始同步时如果数据量过大会耗费较长的时间&#xff1b;相对来说这中方式比较简单不易出错。 还有一种方式就是通过rman的备…...

PyCharm无代码提示解决

PyCharm无代码提示解决方法 在使用PyCharm工具时&#xff0c;调用方法却无法进行提示&#xff0c;针对PyCharm无代码提示整理下解决方案 1、Python内置语法无智能提示 复现&#xff1a;我这里以urllib库读取网页内容为例&#xff0c;在通过urlopen(&#xff09;之后调用getur…...

记一次 .NET某设备监控自动化系统 CPU爆高分析

一&#xff1a;背景 1. 讲故事 先说一下题外话&#xff0c;一个监控别人系统运行状态的程序&#xff0c;结果自己出问题了&#xff0c;有时候想一想还是挺讽刺的&#xff0c;哈哈&#xff0c;开个玩笑&#xff0c;我们回到正题&#xff0c;前些天有位朋友找到我&#xff0c;说…...

大数据与云计算

目录 一、大数据时代二、云计算——大数据的计算三、云计算发展现状四、云计算实现机制五、云计算压倒性的成本优势 一、大数据时代 我们先来看看百度关于 “大数据”&#xff08;Big Data&#xff09;的搜索指数。 可以看出&#xff0c;“大数据” 这个词是从2012年才引起关注…...

一. 并行处理与GPU体系架构-并行处理简介

目录 前言0. 简述1. 串行处理与并行处理的区别2. 并行执行3. 容易混淆的几个概念4. 常见的并行处理总结参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习下课程第一章——并行处…...

vb机试考试成绩分析与统计,设计与实现(高数概率统计)-141-(代码+程序说明)

转载地址http://www.3q2008.com/soft/search.asp?keyword141 前言: 为何口出狂言,作任何VB和ASP的系统, 这个就是很好的一个证明 :) 又有些狂了... 数据库操作谁都会,接触的多了也没什么难的,VB编程难在哪?算法上,这个是一个算法题的毕业设计,里面涉及到对试卷的 平均分,最…...

Arm MMU深度解读

文章目录 一、MMU概念介绍二、虚拟地址空间和物理地址空间2.1、(虚拟/物理)地址空间的范围2.2、物理地址空间有效位(范围) 三、Translation regimes四、地址翻译/几级页表&#xff1f;4.1、思考&#xff1a;页表到底有几级&#xff1f;4.2、以4KB granule为例&#xff0c;页表的…...

2024 年 AI 辅助研发趋势

在2024年&#xff0c;AI辅助研发的应用趋势将非常广泛。举个例子&#xff0c;比如在医疗健康领域&#xff0c;AI将深度参与新药研发、早期癌症研究以及辅助诊断等&#xff0c;助力医疗技术的突破。同时&#xff0c;在农业领域&#xff0c;AI也将通过无人机、智能装备等方式&…...

聊聊pytho中的函数

Python中的函数 一、Python中函数的作用与使用步骤 1、为什么需要函数 在Python实际开发中&#xff0c;我们使用函数的目的只有一个“让我们的代码可以被重复使用” 函数的作用有两个&#xff1a; ① 代码重用&#xff08;代码重复使用&#xff09; ② 模块化编程&#x…...

Python中starmap有什么用的?

目录 前言 starmap函数的作用 starmap函数的用法 starmap函数的示例 1. 对每个元组元素进行求和 2. 对每个元组元素进行乘积 实际应用场景 1. 批量处理函数参数 2. 并行处理任务 3. 批量更新数据库 总结 前言 在Python中&#xff0c; starmap 是一个非常有用的函数&…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...