python的文件操作

前言

  • 打印内容到屏幕

        最简单的输出方式是调用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.rhkb.cn/news/101598.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android NDK JNI与Java的相互调用

一、Jni调用Java代码 jni可以调用java中的方法和java中的成员变量,因此JNIEnv定义了一系列的方法来帮助我们调用java的方法和成员变量。 以上就是jni调用java类的大部分方法,如果是静态的成员变量和静态方法,可以使用***GetStaticMethodID、CallStaticObjectMethod等***。就…

docker安装fastDFS

一、docker安装 1、搜索镜像 2、拉取镜像 最新版本: docker pull delron/fastdfs3、使用镜像构建容器 3.1 创建tracker容器 docker run -dti --networkhost --name my-tracker -v /opt/zdxf/soft/fastdfs/tracker:/var/fdfs -v /etc/localtime:/etc/localtime d…

Nvidia Jetson 编解码开发(3)解决H265解码报错“PPS id out of range”

1.问题描述 基于之前的开发程序 Nvidia Jetson 编解码开发(2)Jetpack 4.x版本Multimedia API 硬件编码开发--集成encode模块_free-xx的博客-CSDN博客 通过Jetson Xavier NX 硬编码的H265发出后, 上位机断点播放发出来的H265码流, 会报“PPS id out of range” 错误 …

【C语言】喝汽水问题

大家好!今天我们来学习C语言中的喝汽水问题! 目录 1. 题目内容: 2. 思路分析 2.1 方法一 2.2 方法二 2.3 方法三 3. 代码实现 3.1 方法一 3.2 方法二 3.3 方法三 1. 题目内容 喝汽水,1瓶汽水1元,2个空瓶可以…

算法题面试实战收集

回文数字 2023-08-18 美团 一面 在不使用额外的内存空间的条件下判断一个整数是否是回文。 回文指逆序和正序完全相同。 数据范围: 进阶: 空间复杂度O(1) ,时间复杂度 O(n) 提示: 负整数可以是回文吗?(比如…

vue项目配置git提交规范

vue项目配置git提交规范 一、背景介绍二、husky、lint-staged、commitlint/cli1.husky2.lint-staged3.commitlint/cli 三、具体使用1.安装依赖2.运行初始化脚本3.在package.json中配置lint-staged4.根目录新增 commitlint.config.js 4.提交测试1.提示信息格式错误时2.eslint校验…

深度学习3:激活函数

一、激活函数的简介与由来 激活函数:是用来加入非线性因素的,解决线性模型所不能解决的问题。 线性函数的组合解决的问题太有限了,碰到非线性问题就束手无策了。如下图。 通过激活函数映射之后,可以输出非线性函数。 最后再通过…

【2023深圳杯数学建模A题思路模型与代码分享】

2023深圳杯数学建模A题 A题 影响城市居民身体健康的因素分析解题思路第一问第二问第三问第四问 技术文档第一问完整代码写在最后 A题 影响城市居民身体健康的因素分析 以心脑血管疾病、糖尿病、恶性肿瘤以及慢性阻塞性肺病为代表的慢性非传染性疾病(以下简称慢性病…

【Terraform学习】使用 Terraform 托管 S3 静态网站(Terraform-AWS最佳实战学习)

使用 Terraform 托管 S3 静态网站 实验步骤 前提条件 安装 Terraform: 地址 下载仓库代码模版 本实验代码位于 task_s3 文件夹中。 变量文件 variables.tf 在上面的代码中,您将声明,aws_access_key,aws_secret_key和区域变量…

ubuntu 22.04 LTS 在 llvm release/17.x 分支上编译 cookbook llvm example Chapter 02

不错的资料: LLVMClang编译器链接器--保值【进阶之路二】 - 掘金 —————————————————————————————————————— 下载 llvm-cookbook example: $ git clone https://github.com/elongbug/llvm-cookbook.git 也可以参照llvm-pr…

【BASH】回顾与知识点梳理(三十九)

【BASH】回顾与知识点梳理 三十九 三十九. make、tarball、函数库及软件校验39.1 用 make 进行宏编译为什么要用 makemakefile 的基本语法与变量 39.2 Tarball 的管理与建议使用原始码管理软件所需要的基础软件Tarball 安装的基本步骤一般 Tarball 软件安装的建议事项 (如何移除…

【vue3+ts项目】配置eslint校验代码工具,eslint+prettier+stylelint

1、运行好后自动打开浏览器 package.json中 vite后面加上 --open 2、安装eslint npm i eslint -D3、运行 eslint --init 之后,回答一些问题, 自动创建 .eslintrc 配置文件。 npx eslint --init回答问题如下: 使用eslint仅检查语法&…

6-模板初步使用

官网: 中文版: 介绍-Jinja2中文文档 英文版: Template Designer Documentation — Jinja Documentation (2.11.x) 模板语法 1. 模板渲染 (1) app.py 准备数据 import jsonfrom flask import Flask,render_templateimport settingsapp Flask(__name__) app.config.from_obj…

VB.NET通过VB6 ActiveX DLL调用PowerBasic及FreeBasic动态库

前面说的Delphi通过Activex DLL同时调用PowerBasic和FreeBasic写的DLL,是在WINDOWS基础平台上完成的。 而 .NET平台是架在WINDOWS基础平台之上的,它的上面VB.NET或C#等开发的APP程序,下面写一下用VB.NET,通过VB6注册的Activex DLL…

SOA通信中间件常用的通信协议

摘要: SOA(面向服务的架构)的软件设计原则之一是模块化。 前言 SOA(面向服务的架构)的软件设计原则之一是模块化。模块化可以提高软件系统的可维护性和代码重用性,并且能够隔离故障。举例来说,…

(一)idea连接GitHub的全部流程(注册GitHub、idea集成GitHub、增加合作伙伴、跨团队合作、分支操作)

(二)Git在公司中团队内合作和跨团队合作和分支操作的全部流程(一篇就够)https://blog.csdn.net/m0_65992672/article/details/132336481 4.1、简介 Git是一个免费的、开源的*分布式**版本控制**系统*,可以快速高效地…

滑动窗口介绍

1.基本概念 利用单调性,使用同向双指针,两个指针之间形成一个窗口 子串与子数组都是连续的一段子序列时不连续的 2.为什么可以用滑动窗口? 暴力解决时发现两个指针不需要回退(没必要回退,一定不会符合结果&#xf…

sentinel的基本使用

在一些互联网项目中高并发的场景很多&#xff0c;瞬间流量很大&#xff0c;会导致我们服务不可用。 sentinel则可以保证我们服务的正常运行&#xff0c;提供限流、熔断、降级等方法来实现 一.限流&#xff1a; 1.导入坐标 <dependency><groupId>com.alibaba.c…

ansible(2)-- ansible常用模块

部署ansible&#xff1a;ansible&#xff08;1&#xff09;-- 部署ansible连接被控端_luo_guibin的博客-CSDN博客 目录 一、ansible常用模块 1.1 ping 1.2 command 1.3 raw 1.4 shell 1.5 script 1.6 copy 1.7 template 1.8 yum 11.0.1.13 主控端(ansible)11.0.1.12 被控端(k8s…

【Java 高阶】一文精通 Spring MVC - 基础概念(一)

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…