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

mysql 学习网站/百度推广登录平台官网

mysql 学习网站,百度推广登录平台官网,利用百度云做网站,网站开发有多少种一、文件指针 python中严格来说没有指针这个说法,但有指针这个用法的体现。指针概念常用于c语言、c语言中 在Python的文件操作中,文件指针(也称为文件游标或文件句柄的位置)是一个内部标记,它指示了当前文件操作的读…

一、文件指针

python中严格来说没有指针这个说法,但有指针这个用法的体现。指针概念常用于c语言、c++语言中

在Python的文件操作中,文件指针(也称为文件游标或文件句柄的位置)是一个内部标记,它指示了当前文件操作的读写位置,文件指针在打开文件时初始化,并随着文件的读写操作而移动

文件指针的行为:

1、打开文件:当使用open()函数打开文件时,文件指针默认位于文件的开头(对于文本文件是第一个字符之前,对于二进制文件是第一个字节之前)

2、读取文件:当执行读取操作(如read()、readline()或readlines())时,文件指针会向前移动到读取内容的末尾

3、写入文件:在写入操作(如write())中,文件指针会移动到写入内容的末尾,如果文件是以追加模式('a'或'a+')打开的,文件指针会首先移动到文件的末尾

4、文件指针的位置:可以使用 tell() 方法获取当前文件指针的位置(以字节为单位)

5、移动文件指针:使用 seek() 方法可以改变文件指针的位置。seek() 方法接受一个偏移量(可以是正数或负数)和一个可选的基准位置(默认为文件的开头,但也可以是文件的末尾或当前位置)

eg:以下是一个简单的示例,展示了如何使用文件指针来读取和写入文件

# 打开文件进行读写操作
with open('example.txt', 'w+') as file:# 写入一些内容到文件file.write('Hello, World!\n')# 获取当前文件指针的位置(应该位于文件末尾)position = file.tell()print(f'Current file position: {position}')  # 输出应该是文件的字节长度,例如14# 将文件指针移回文件的开头file.seek(0)# 读取文件内容content = file.read()print('File content:')print(content)  # 输出: Hello, World!# 再次获取文件指针的位置(现在应该在文件末尾)position = file.tell()print(f'Current file position after reading: {position}')  # 输出应该是文件的字节长度# 注意:当使用with语句时,文件会在块结束时自动关闭,无需调用close()方法。

输出内容:

Current file position: 15
File content:
Hello, World!

 注意事项:

1、在文本模式下,tell()方法返回的是字符的索引(对于UTF-8编码,一个字符可能对应一个或多个字节),在二进制模式下,它返回的是字节的索引

2、使用seek()方法时,如果文件是以文本模式打开的,偏移量应该对应于字符数(尽管底层实现可能使用字节),如果文件是以二进制模式打开的,偏移量应该对应于字节数

3、在某些情况下,特别是在涉及非ASCII字符和混合编码时,文本模式下的seek()和tell()可能会表现得不如预期,在这些情况下,使用二进制模式可能更为可靠

二、文件定位操作

2.1  tell()& seek()

tell():显示文件内当前位置,即文件指针当前位置

seek(offset,whence):移动文件读取指针到指定位置

offset:偏移量,表示要移动的字节数

whence:起始位置,表示移动字节的参考位置,默认是0,0代表文件开头作为参考位置,1代表当前位置作为参考位置,2代表将文件结尾作为参考位置

seek(0,0)就会把文件指针移到文件开头

eg:

我们在 py1文件夹中新建一个文件名为 example.txt,如下图所示:

f = open('example.txt','w+')  # 可读可写,如果存在文件,覆盖已有文件内容
f.write("hello Python!")  # 写入hello Python!
pos = f.tell()   # 显示文件内当前位置,即文件指针当前位置
print('当前文件指针所在的位置:',pos)
f.seek(0,0)  # 把f文件指针移到开头
print('移到后文件指针所在的位置:',f.tell())
print(f.read())
f.close()

输出内容:

当前文件指针所在的位置: 13
移到后文件指针所在的位置: 0
hello Python!

2.2 with open

作用:代码执行完,系统会自动调用 f.close() ,可以省略文件关闭步骤

eg:

with open("example.txt","w") as f:   # f是文件对象f.write("emmm")
# 检验一下with open是否真的自动关闭,用f.closed判断print(f.closed)    # 输出:False,说明此时还未关闭
print(f.closed)   # 输出:True,说明此时已经关闭

三、编码格式

3.1 encoding编码

注意:file 对象的 encoding 参数的默认值与平台有关,比如windows上默认字符编码为GBK。
encoding 表示编码集.根据文件的实际保存编码进行获取数据,对于我们而言,使用更多的是utf-8

当我们将中文写入文件中时,如果没有转码会发生乱码的情况:

如下:

eg:

with open('example.txt','w') as f:f.write("君君18岁")

将产生乱码:

采用encoding编码可解决乱码问题:

with open('example.txt','w',encoding='utf-8') as f:f.write("君君18岁")

example.txt 文件中乱码情况得到解决:

 

当读取文件的时候也要注意转码,比如在example.txt 文件中有如下几句话:

with open('example.txt',encoding='utf-8') as f:print(f.read())

输出内容:

君君18岁
哈哈哈哈哈
嘻嘻嘻嘻
不灵不灵

3.2 案例:图片复制

先新建一个带图片的文件夹(本人在桌面上新建一个名为“图片”的文件夹,里面有一张名为“图片1” 的图片)

1、读取图片

图片是一个二进制文件,想要写入必须要先拿到

2、写入图片

eg:

with open(r'C:\Users\31761\Desktop\图片\图片1.jpg',"rb") as file:     # r取消转义字符,rb读取二进制文件img = file.read()print(img)
# 将读取到的内容写入到当前文件中
with open(r"D:\Python project\py1\图片1.jpg",'wb') as f:    # wb 写入二进制文件f.write(img)

图片已经写入相关路径: 

 

四、目录常用操作 

在Python中,处理文件和目录的常用操作主要通过内置的os模块和pathlib模块来完成。这两个模块提供了丰富的功能来创建、删除、遍历、修改目录和文件。以下是一些常用的目录操作示例:

导入模块:import  os

1.文件重命名: os.rename (旧文件名,新文件名)
2.删除文件: os.remove (日标文件名)
3.创建文件夹: os.mkdir (文件夹名)
4.获取当前目录: os.getcwd ()
5.获取目录列表: os.listdir (目录)
6.删除文件夹: os.rmdir (文件夹名)

4.1 使用 os 模块

1、获取当前工作目录

import os
current_directory = os.getcwd()
print(current_directory)

2、更改当前工作目录

os.chdir('/path/to/new/directory')

3、列出目录内容

contents = os.listdir('.')  # '.' 表示当前目录
print(contents)

4、创建目录

os.makedirs('/path/to/new/directory', exist_ok=True)  # exist_ok=True 表示如果目录已存在则不抛出异常

5、删除目录

os.rmdir('/path/to/directory')  # 只能删除空目录
os.removedirs('/path/to/directory')  # 删除多级空目录
shutil.rmtree('/path/to/directory')  # 删除目录及其内容,需要导入 shutil 模块

6、检查路径是否存在

exists = os.path.exists('/path/to/directory')
print(exists)

7、检查路径是否是目录

is_directory = os.path.isdir('/path/to/directory')
print(is_directory)

8、获取目录的绝对路径

absolute_path = os.path.abspath('/path/to/directory')
print(absolute_path)

9、拼接路径

new_path = os.path.join('/path', 'to', 'directory')
print(new_path)

4.2 使用 pathlib 模块

pathlib 模块提供了一个面向对象的路径操作方法,使得路径操作更加直观和方便。

1、获取当前工作目录

from pathlib import Path
current_directory = Path.cwd()
print(current_directory)

2、更改当前工作目录

# pathlib 没有直接更改当前工作目录的方法,仍然需要使用 os.chdir
os.chdir('/path/to/new/directory')

3、列出目录内容

directory = Path('.')
contents = list(directory.iterdir())
for item in contents:print(item)

4、创建目录

new_directory = Path('/path/to/new/directory')
new_directory.mkdir(parents=True, exist_ok=True)  # parents=True 表示创建多级目录

5、删除目录

directory.rmdir()  # 只能删除空目录
# 删除目录及其内容,需要递归删除
for item in directory.rglob('*'):if item.is_dir():item.rmdir()else:item.unlink()
directory.rmdir()

6、检查路径是否存在

exists = Path('/path/to/directory').exists()
print(exists)

7、检查路径是否是目录

is_directory = Path('/path/to/directory').is_dir()
print(is_directory)

8、获取目录的绝对路径

absolute_path = Path('/path/to/directory').resolve()
print(absolute_path)

9、拼接路径

new_path = Path('/path') / 'to' / 'directory'
print(new_path)

今天的分享就到这里了,希望能对大家有所帮助~

相关文章:

Python小白学习教程从入门到入坑------第三十课 文件定位操作(语法进阶)

一、文件指针 python中严格来说没有指针这个说法,但有指针这个用法的体现。指针概念常用于c语言、c语言中 在Python的文件操作中,文件指针(也称为文件游标或文件句柄的位置)是一个内部标记,它指示了当前文件操作的读…...

人工智能、机器学习与深度学习:层层递进的技术解读

引言 在当今科技快速发展的时代,人工智能(AI)已经成为一个热门话题,几乎渗透到了我们生活的方方面面。从智能手机的语音助手,到自动驾驶汽车,再到医疗诊断中的图像识别,人工智能的应用正在改变我…...

Code Inspector——页面开发提效的神器

写在前面 优点: 开发提效:点击页面上的 DOM 元素,它能自动打开 IDE 并将光标定位至 DOM 的源代码位置,大幅提升开发体验和效率简单易用:对源代码无任何侵入,只需要在打包工具中引入就能够生效&#xff0c…...

如何定制RockyLinux ISO

目标 基于Rocky9官方ISO做定制,构建自己的ISO 可以添加非官方预装的RPM包实现Kickstart自动化安装, 完成分区等操作ISO安装后,可以执行自定义脚本,比如安装你手动添加的RPM包 Rocky9 官方ISO内容分析 挂载Rocky9 ISO,得到如下…...

python基于深度学习的音乐推荐方法研究系统

需求设计 一款好的音乐推荐系统其目的是为用户进行合理的音乐推荐,普通的用户在登录到系统之后,能够通过搜索的方式获取与输入内容相关的音乐推荐,而以管理员登录到系统之后,则可以进行徐昂管的数据管理等内容操作。此次的需求主…...

机器学习系列----介绍前馈神经网络和卷积神经网络 (CNN)

前言 在深度学习领域,神经网络是一种模拟人脑神经元结构和功能的数学模型。它通过大量的层次结构和参数调整来实现模式识别、分类、回归等任务。常见的神经网络结构有前馈神经网络(Feedforward Neural Networks,简称 FNN)和卷积神…...

vue.js组件和传值以及微信小程序组件和传值

微信小程序组件以及vue.js组件 一.微信小程序组件引用1.创建组件Component2.页面组件引用3.组件传值3.1 父视图传值到子组件 (父---->子)3.2 子组件传值给父组件 (子---->父)3.3 父组件方法传递到子组件 4. 界面之间的传值4.1 正向传值4.2 反向传值…...

c语言编程题(函数)

1编写函数将一个仅包含整数&#xff08;可能为负&#xff09;的字符串转换为对应的整数 方法一使用标准库函数 atoi atoi 函数是C语言标准库中的一个函数&#xff0c;用于将字符串转换为整数。 代码&#xff1a; #include <stdio.h> #include <stdlib.h> // 包含…...

华为eNSP:QinQ

一、什么是QinQ&#xff1f; QinQ是一种网络技术&#xff0c;全称为"Quantum Insertion"&#xff0c;也被称为"Q-in-Q"、"Double Tagging"或"VLAN stacking"。它是一种在现有的VLAN&#xff08;Virtual Local Area Network&#xff0…...

JAVA基础-多线程线程池

文章目录 1. 多线程1.1什么是多线程&#xff08;1&#xff09;并发和并行&#xff08;2&#xff09;进程和线程 1.2多线程的实现方式1.2.1 方式一&#xff1a;继承Thread类1.2.2 方式二&#xff1a;实现Runnable接口1.2.3方式三: 实现Callable接口 1.3 常见的成员方法1.3.1 设置…...

HarmonyOS 沉浸式状态实现的多种方式

1. HarmonyOS 沉浸式状态实现的多种方式 HarmonyOS 沉浸式状态实现的多种方式 1.1. 方法一 1.1.1. 实现讲解 &#xff08;1&#xff09;首先设置setWindowLayoutFullScreen(true)&#xff08;设置全屏布局&#xff09;。   布局将从屏幕最顶部开始到最底部结束&#xff0c…...

Python3.11.9下载和安装

Python3.11.9下载和安装 1、下载 下载地址&#xff1a;https://www.python.org/downloads/windows/ 选择版本下载&#xff0c;例如&#xff1a;Python 3.11.9 - April 2, 2024 2、安装 双击exe安装 3、配置环境变量 pathD:\Program Files\python3.11.9...

简简单单的UDP

前言 上一篇了解了TCP的三次握手过程&#xff0c;目的、以及如何保证可靠性、序列号与ACK的作用&#xff0c;最后离开的时候四次挥手的内容&#xff0c;这还只是TCP内容中的冰山一角&#xff0c;是不是觉得TCP这个协议非常复杂&#xff0c;这一篇我们来了解下传输层另外一个协…...

减少 try...catch,定义全局统一异常处理器!

前言 软件开发springboot项目过程中&#xff0c;不可避免的需要处理各种异常,spring mvc 架构中各层会出现大量的try {...} catch {...} finally {...}代码块&#xff0c;不仅有大量的冗余代码&#xff0c;而且还影响代码的可读性。这样就需要定义个全局统一异常处理器&#x…...

多点支撑:滚珠导轨的均匀分布优势!

滚珠导轨的滚珠稳定性可以有效保持滚珠导轨的稳定运行&#xff0c;减少滚珠脱落的风险&#xff0c;确保设备的长期稳定性和可靠性。事实上&#xff0c;滚珠导轨的滚珠稳定性主要依赖于以下几个方面&#xff1a; 1、精密的制造工艺&#xff1a;滚珠导轨的导轨和滑块通常采用高精…...

电气火灾探测器在商场火灾隐患监测和火灾预防中的应用

徐悦 安科瑞电气股份有限公司 近年来&#xff0c;全国火灾事故频发&#xff0c;尤其是在大型商场等公共场所&#xff0c;火灾造成了巨大的人员伤亡和财产损失。以南京金盛百货中央门店火灾为例&#xff0c;该起事故暴露了商场在电气安全、消防管理方面的重大隐患&#xff0c;…...

速盾:如何有效防止服务器遭受攻击?

服务器攻击是网络安全中常见的问题&#xff0c;但我们可以采取一系列的措施来有效防止服务器的遭受攻击。以下是一些常见的防御措施&#xff1a; 更新和维护服务器软件&#xff1a;及时更新操作系统、应用程序以及安全补丁&#xff0c;以确保最新版本的软件没有已知的漏洞。同时…...

【今日更新】使用Python辅助处理WebGIS

Linux发行版本: Debian GNU/Linux 12 (bookworm)操作系统内核: Linux-6.1.0-18-amd64-x86_64-with-glibc2.36Python版本: 3.11.2 1.使用Python处理MapServer配置文件Mapfile 创建、分析、修改和格式化的python库 MapServer Mapfiles。 Python 2和3 兼容 纯Python-无MapServer依…...

Linux 消息队列

在Linux中&#xff0c;线程间消息队列可以通过使用System V消息队列或POSIX消息队列来实现。 使用System V消息队列&#xff1a; System V消息队列是一种基于IPC&#xff08;Inter-process Communication&#xff0c;进程间通信&#xff09;的通信机制&#xff0c;可以用于进程…...

十大经典排序算法-冒泡算法详解介绍

1、十大经典排序算法 排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序&#xff0c;内部排序是数据记录在内存中进行排序&#xff0c;而外部排序是因排序的数据很大&#xff0c;一次不能容纳全部的排序记录&#xff0c;在排序过程中需要…...

delphi 编译多语言工程 error RC2104 : undefined keyword or key name:

Delphi 10.3中建立多语言工程&#xff0c;编译时出现错误&#xff1a;error RC2104 : undefined keyword or key name: 出现错误的的文件是.rc文件&#xff0c;出现错误的位置是 System_JSONConsts_SInvalidJavascriptQuote, L"Invalid JavaScript string quote character…...

[python] 如何debug python脚本中C++后端的core dump

文章目录 Debug过程Reference Debug过程 另外&#xff1a;对于core dump: gdb版本是>7&#xff0c;gdb从版本7开始支持对Python的debug。确保你的系统中安装了 GDB 调试器和对应版本的 Python 调试信息包&#xff08;例如 python-dbg 或 python-debuginfo&#xff09;。 #…...

Ecmascript(ES)标准

Ecmascript&#xff08;ES&#xff09;标准 ECMAScript&#xff08;通常简称为 ES&#xff09;是一种标准化的脚本语言&#xff0c;由 Ecma International 通过 ECMA-262 标准定义。ECMAScript 是 JavaScript 的规范版本&#xff0c;几乎所有的现代浏览器和许多服务器端环境&a…...

易泊车牌识别相机:4S 店的智能之选

在当今数字化时代&#xff0c;科技的进步不断为各个行业带来更高效、便捷的解决方案。对于 4S 店来说&#xff0c;易泊车牌识别相机的出现&#xff0c;无疑为其运营管理带来了全新的变革。 一、易泊车牌识别相机的强大功能 易泊车牌识别相机以其卓越的性能和精准的识别能力&…...

Webpack 深度解析与实战指南

文章目录 前言一、安装于基本配置安装Webpack 和 Webpack CLI创建基本配置文件 二、加载器常见的加载器配置加载器 三、插件&#xff08;Plugins&#xff09;常用的插件配置插件 四、性能优化缓存代码分割Tree Shaking压缩 五、开发服务器安装服务器配置服务器启动服务器生产环…...

【RabbitMQ】06-消费者的可靠性

1. 消费者确认机制 没有ack&#xff0c;mq就会一直保留消息。 spring:rabbitmq:listener:simple:acknowledge-mode: auto # 自动ack2. 失败重试机制 当消费者出现异常后&#xff0c;消息会不断requeue&#xff08;重入队&#xff09;到队列&#xff0c;再重新发送给消费者。…...

【K8S系列】如何监控集群CPU使用率并设置告警的分析与详细解决方案

监控 Kubernetes 集群的 CPU 使用率并设置告警是确保集群健康和性能的关键。以下是几种常见的方案&#xff0c;每种方案的具体步骤都进行了详细说明。 方案 1: 使用 Prometheus 和 Grafana 1. 安装 Prometheus 和 Grafana 1.1 使用 Helm 安装 Prometheus 添加 Helm 仓库: hel…...

解线性方程组(二)

实验类型&#xff1a;●验证性实验 ○综合性实验 ○设计性实验 实验目的&#xff1a;进一步熟练掌握用Jacobi迭代法和Gauss-Seidel法解线性方程组的算法&#xff0c;提高编程能力和解算线性方程组问题的实践技能。 实验内容&#xff1a; 1)取初值性x(0)(0,0,0,0)T, 精度要求ε…...

HarmonyOS Next 实战卡片开发 02

HarmonyOS Next 实战卡片开发 02 卡片开发中&#xff0c;还有一个难点是显示图片。其中分为显示本地图片和显示网络图片 显示本地图片 卡片可以显示本地图片&#xff0c;如存放在应用临时目录下的图片。路径比如 /data/app/el2/100/base/你的项目boundleName/temp/123.png 以…...

FastDDS服务发现之PDP的收发

目录 PDP发送PDP接收EDP更新 EntityID 通过FastDDS服务发现之PDP和EDP的创建这一节内容&#xff0c;可以了解服务发现的概念&#xff0c;机制和PDP/EDP中各类对象的创建&#xff0c;本文详细介绍Simple PDP发送数据&#xff0c;接收数据和处理报文的流程。 PDP发送 通过在RTP…...