python的文件操作

news2024/9/21 2:36:06

前言

  • 打印内容到屏幕

        最简单的输出方式是调用print函数,此函数会将你传递的表达式转化成字符串表达式,并将结果写道标准输出中。

  • 读取键盘输入

        python提供了两个raw_input和input内置函数从标准输入中读取一行文本,默认的标准输入是键盘。

        在python2中有raw_input和input函数,raw_input是将从标准输入如果文本转成字符串原样输出,input是用来将用户的输入解读为python代码,并尝试运行他们。

        在python3中废弃了raw_input,保留了input函数,作用和raw_input函数基本相同。如果想执行input的输入,可以使用eval()函数。

  • python2中使用raw_input和input函数

raw_input([prompt])函数从标准输入读取一行,并返回字符串(去掉结尾的换行符):

已经在python3中废弃

  • python3中使用input函数

input([prompt])和raw_input([prompt])函数功能基本类似。

 一.文件操作

        python提供了必要的函数和方法来进行默认情况下的文件基本操作。你可以用file对象来做大部分的文件操作。

        1.1 文件打开open函数

        必须先用python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。

        一个文件被打开后,就获得一个file对象,你可以获得该文件的各种信息和进行各种操作。

        语法:

file object = open(file_name [, access_mode] [, buffering])

        参数:

  • file_name:文件名字符串
  • access_mode:决定了打开文件的模式:只读,写入,追加等。默认文件访问模式是只读(r)。

文件模式:

t文本模式 (默认)。
x写模式,新建一个文件,如果该文件已存在则会报错。
b二进制模式。
+打开一个文件进行更新(可读可写)。
U通用换行模式(不推荐)。
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
++++
+++++
创建++++
覆盖++
指针在开始++++
指针在结尾++
  • buffering:缓冲行为。将对文件进行写和读,需要调用系统调用和访问硬盘,进行I/O,效率比较低。使用缓存,是为文件建立的缓存,先将硬盘中的数据读取到缓存中,达到某一规则,在进行一次I/O。
    • buffering大于1,缓冲行为为全缓冲。缓存区的大小为buffering的值,当缓冲区中的数据达到缓冲区的大小,进行一次系统调用(I/O)。
    • buffering等于1,缓冲方式为行缓冲。当碰到一个换行符,就进行一次系统调用(I/O)
    • buffering等于0,缓冲方式为无缓冲。进行写和读时,立即进行系统调用(I/O)。

        1.2 文件关闭close()方法

        file对象的close方法是刷新缓冲区里任何没有写入的信息,并关闭该文件,这之后便不能再进行写入了。

        当一个文件对象的引用被重新指定给另一个文件时,python会关闭之前的文件。

fileobject.close()

        1.3 file对象属性

文件属性列表:

file.closed返回true如果文件已被关闭,否则返回false。
file.mode返回被打开文件的访问模式。
file.name返回文件的名称。
file.softspace

末尾是否强制加空格。如果用print输出后,必须跟一个空格符,则返回false。否则返回true。python3.x不支持

         1.4 读写文件

        1.4.1 写文件write()方法

        write()方法可将任何字符串写入一个打开的文件。需要注意的是,python字符串可以是二进制数据,而不仅仅是文字。write()方法不会再字符串的结尾添加换行符'\n'。

         1.4.2 读文件read()方法

  • read()方法:

        read()方法从一个打开的文件中读取字符串,注意python字符串可以是二进制数据,不仅仅是文字。

str = fileobj.read([count])

        count是读取的字符串字节数,从打开的文件中读取的字节计数。该方法从文件开头开始计数。如果没有传入count,它会尽可能多地读取更多内容,很可能是直到文件末尾。

  • readline()方法
fileobj.readline([count])

        count为空,从打开文件中读取整行数据,包括\n。count不为空读取对应字节数数据,直到结尾。

         1.5 定位文件

  • 文件当前位置tell()

        tell()方法告诉你文件内的当前位置,下一次读写会发生在多少字节之后。

  • 修改当前文件位置seek()
fileobject.seek(offset [,from])

offset:表示要移动的字节数

from:表示开始移动字节参考位置。如果from为0表示从文件的开头作为移动字节的参考位置,如果from设为1,则使用当前位置作为参考位置,如果from设为2,那么用文件末尾作为参考位置。

         1.6 重命名和删除文件

        python的os模块提供了帮你执行文件处理操作方法,比如重命名和删除文件。要使用os模块,你必须先导入它,然后可以调用os模块的方法。

        1.6.1 rename()方法

        rename()作用修改文件名,需要两个参数,当前文件名和新文件名。

os.rename('old_name', 'new_name')

         1.6.2 remove()方法

        remove()方法作用是删除文件,需要提供删除的文件名作为参数。

os.remove('filename')

        1.7 操作目录

        1.7.1 mkdir()方法

        作用是创建一个目录。参数是要创建新目录名。默认是在当前路劲下创建。

os.mkdir('newdir')

         1.7.2 getcwd()方法和chdir()方法

        getcwd()方法,显示当前工作目录。

        chdir()用来改变当前目录。参数修改当前目录的名称。

         1.7.3 删除目录rmdir()

        作用删除目录,参数需要删除的目录。在删除目录前必须先删除目录下的所有文件。

 

文件、目录相关的方法

File 对象和 OS 对象提供了很多文件与目录的操作方法,可以通过点击下面链接查看详情:

  • File 对象方法: file 对象提供了操作文件的一系列方法。
  • OS 对象方法: 提供了处理文件及目录的一系列方法。

 

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

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

相关文章

7.接着跑一下triton官方教程

5.Model Ensemble 在此示例中,我们将探索使用模型集成来仅通过单个网络调用在服务器端执行多个模型。这样做的好处是减少了在客户端和服务器之间复制数据的次数,并消除了网络调用固有的一些延迟。 为了说明创建模型集成的过程,我们将重用第…

缺页异常与copy-on-write fork

缺页异常需要什么 当发生缺页异常时,内核需要以下信息才能响应这个异常: 出错的虚拟地址(引发缺页异常的源) 当一个用户程序触发了缺页异常,会切换到内核空间,将出错的地址放到STVAL寄存器中,…

JVM工具-1. jps:虚拟机进程状态工具

文章目录 1. jps介绍2. jps命令格式3. jps工具主要选项4. jps -q5. jps -m6. jps -l7. jps -v 1. jps介绍 jps(JVM Process Status Tool):虚拟机进程状态工具,可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class&…

3.3.2:SUM作为一般函数及聚合函数的应用

【分享成果,随喜正能量】我们很多道友没受过什么苦,或受不了一句话、一点气,总想悠悠自在成佛。或是念上几十部经就想换取什么,法宝是无价的!你拿有价来换,不但换不到,还丧失了功德。应当不退初…

springboot整合jdbctemplate教程

这篇文章介绍一下springboot项目整合jdbctemplate的步骤,以及通过jdbctemplate完成数据库的增删改查功能。 目录 第一步:准备数据库 第二步:创建springboot项目 1、创建一个springboot项目并命名为jdbctemplate 2、添加spring-jdbc和项目…

探讨uniapp的路由与页面生命周期问题

1 首先我们引入页面路由 2 页面生命周期函数 onLoad() {console.log(页面加载)},onShow() {console.log(页面显示)},onReady(){console.log(页面初次显示)},onHide() {console.log(页面隐藏)},onUnload() {console.log(页面卸载)},onBackPress(){console.log(页面返回)}3 页面…

一串神奇的字符,就能让ChatGPT在内的AI聊天机器人变得不正常

一组看似随机的字符被添加到对话提示的末尾,就会发现几乎任何聊天机器人都显露了邪恶本性。 卡内基梅隆大学计算机科学教授Zico Kolter和博士生Andy Zou的一份报告,揭示了当前主流的聊天机器人,特别是ChatGPT,以及Bard、Claude等…

python print ljust 文本对齐打印 对齐打印名册

背景 在python部分场景下,我们需要打印输出一些文本消息,但我们又无法预测可能的打印内容是什么。这种情况下,我们要对齐打印这些文本,是比较比较难以处理的。 例如下面是一列姓名,和对应的一列手机/电话号&#xff0…

自然对数底e的一些事

自然对数底e的一些事 走的人多了就成了路 中国清代数学家李善兰(1811—1882) 凡此变数中函彼变数者,则此为彼之函数 自然对数底也是使用习惯 🍉 李善兰把function翻译为函数,函就是包含,含有变量&#xff…

C# Winfrom通过COM接口访问和控制Excel应用程序,将Excel数据导入DataGridView

1.首先要创建xlsx文件 2.在Com中添加引用 3. 添加命名空间 using ApExcel Microsoft.Office.Interop.Excel; --这样起个名字方面后面写 4.样例 //点击操作excelDataTable dt new DataTable();string fileName "D:\desktop\tmp\test.xlsx";ApExcel.Application exA…

【学习FreeRTOS】第20章——FreeRTOS内存管理

1.FreeRTOS内存管理简介 在使用 FreeRTOS 创建任务、队列、信号量等对象的时,一般都提供了两种方法: 动态方法创建:自动地从FreeRTOS管理的内存堆中申请创建对象所需的内存,并且在对象删除后,可将这块内存释放回Free…

牛客练习赛 114

C.Kevin的七彩旗 思路:贪心和dp均可以解决。 贪心:我们可以发现,最终想要获得合法的序列,我们必须是通过把几段连续的序列拼凑起来,但序列之间可能有重合,因此我们就转化为了,记录每一段最大的…

IP编址数据转发(md版)

IP编址&数据转发 一、IP编址1.1、二进制、十进制和十六进制1.2、进制之间的转换1.3、IP编址1.4、子网掩码1.5、二进制和十进制转换1.6、IP地址分类1.7、IP地址类型1.8、地址规划 二、VLSM与CIDR2.1、有类IP编址的缺陷2.2、变长子网掩码 VLSM2.3、缺省情况下的掩码2.4、子网…

Redis使用

环境配置 代码实现 Java public CoursePublish getCoursePublishCache(Long courseId){//查询缓存Object jsonObj redisTemplate.opsForValue().get("course:" courseId);if(jsonObj!null){String jsonString jsonObj.toString();System.out.println("从缓…

Linux安装1Panel(官方)

项目简介安装命令 curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh 访问地址 查看命令:1pctl user-info 常用命令 Usage:1pctl [COMMAND] [ARGS...]1pctl --helpCommands: status …

王道考研:特权指令、用户态与核心态、内核程序与应用程序;中断和异常;系统调用;宏内核与微内核;电脑开机全过程;虚拟机原理

一、操作系统的运行机制 kernel当中包含的是OS当中最核心的部分,像图形界面不是放在kernel当中的,离开图像界面OS仍然可以通过命令行来使用 CPU拿到一条指令就已经可以区分它是特权指令还是非特权指令了 操作系统根据PSW来判断当前正在运行的是用户程序…

html实现元素拖动替换

效果 实现 复制粘贴.html即可使用 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>拖动替换</title></head><style>.box {width: 500px;height: 500px;background: gainsboro;border-radius: 10px;}…

Java中HashMap的基本介绍和详细讲解,HashMap的遍历以及HashMap的底层源码的分析

HashMap 基本介绍 HashMap 是 Java 中的一个集合类&#xff0c;实现了 Map 接口&#xff0c;用于存储键值对&#xff08;key-value&#xff09;数据。它基于哈希表的数据结构实现&#xff0c;可以实现高效的查找、插入和删除操作。 HashMap 细节讨论 无序性&#xff1a; Has…

多语言对接电商平台api接口获取京东商品评论数据代码展示示例

商品评论接口的意义&#xff1a; 确认消费者关注与产品卖点是否一致&#xff1b; 洞察用户对价格、促销、直播的敏感度&#xff1b;发现产品质量、客服、物流等方面的问题&#xff1b;找到品牌宣称与用户预期、实际场景之间差异化&#xff1b;挖掘消费者偏好的差异性&#xff…

【设计模式--原型模式(Prototype Pattern)

一、什么是原型模式 原型模式&#xff08;Prototype Pattern&#xff09;是一种创建型设计模式&#xff0c;它的主要目的是通过复制现有对象来创建新的对象&#xff0c;而无需显式地使用构造函数或工厂方法。这种模式允许我们创建一个可定制的原型对象&#xff0c;然后通过复制…