百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

python文件常规操作

toyiye 2024-06-21 12:19 9 浏览 0 评论

目录:

文件的打开与关闭,文件访问方式,读取写入文件相关操作,os模块,os.path模块,上下文管理器,导自定义函数路径


文件的打开与关闭

打开文件一定要有关闭文件的操作

打开----------------------操作------------------------关闭

open----------read(读),write(写)----------------close

1.打开文件 Open

根据绝对路径或者相对路径打开文件

1.绝对路径:文件在硬盘上真正存在的路径。

电脑上查找方式如图一;python查找方式如图二


2.相对路径:相对于自己的目标文件位置。

同级:. (一个点)

上一级: ../(两个点+斜杠)

  • 绝对路径:

图一:电脑上查找绝对路径


图二:python中查找绝对路径


  • 相对路径:

python中用相对路径读取文件


2.完整的文件操作:

#打开文件
file = open('func.py',mode = 'r',encoding='utf8')   
# open('通过相对路径/绝对路径查找文件' , '访问模式:读、写、添加' , '编码格式:一般为utf8')
编码格式可以选填,有时不需要写encoding = 'utf8'也能操作文件

#操作文件
a = file.read()   #读取文件
print(a)             #打印读取的内容

#关闭文件
file.close()

# -*- encoding: utf-8

324234


文件访问方式

| 访问模式 | 说明                                                                              |
| :------: | :----------------------------------------------------------- |
|    r       | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
|    w     | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
|    a     | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |

  凡是有b的,都是以二进制格式打开,对文件操作后不需要编码  encoding='utf8',多输会报错
  
|    rb    | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
|    wb   | 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
|    ab    | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
|    r+    | 打开一个文件用于读写。文件指针将会放在文件的开头。如果调用write,新增的内容会在开头添加,若添加的字符长度超过原本文件里的内容长度,则会覆盖原本的内容    |
|    w+   | 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
|    a+    | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
|   rb+    | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
|   wb+   | 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
|   ab+    | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |


1.r+:打开一个文件用于读写。文件指针将会放在文件的开头。如果调用write,新增的内容会在开头添加,若添加的字符长度超过原本文件里的内容长度,则会覆盖原本的内容。若操作的文件对象不存在,则会报错。

执行r+之前


执行r+之后


r+不能对不存在的文件进行操作


2.w+:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

w+可以创建新文件


读取写入文件相关操作

| 操作                                               | 方法         |
| -------------------------------------------------- | ------------ |
| 读取指定数量内容(在里面传入数值可控制读取数据多少) | read()       |
| 读取一行的内容                                     | readline()   |
| 读取多行的内容                                     | readlines()  |
| 写入内容                                               | write()         |
| 写入多行内容                                        | writelines() |
| 立即刷新缓冲区域(手动保存)             | flush()      |
| 获得光标位置                                        | tell()       |
| 调整光标位置                                       | seek()       |


1.readline():

若括号里没有数字,则默认读取第一行数据

若括号里有数据,则表示读取的个数

readline()


2.readlines():

以列表形式返回读取的内容

readlines()


3.writelines():

以列表的形式写入多行

writelines()


4.tell():获得光标位置

以r,r+,rb,rb+为操作模式的,光标位置都在开头

file = open('func.py','r')
a = file.tell()
print(a)

file.close()

0


以a,a+,ab,ab+为操作模式的,光标位置都在末尾

file = open('func.py','a')
a = file.tell()
print(a)

file.close()

末尾位置的下标


5. seek():调整光标位置

seek(偏移量, from):偏移量为必备参数,必须传入

1.在b模式下可在任意位置执行全部操作。 不能指定编码,即不能在后面加encoding=utf8

2.在文本文件中,没有使用b模式选项打开的文件, 只允许从文件头开始计算相对位置,从文件末尾计算时就会引发异常


在文件操作模式为二进制(例如:rb,wb)的前提,才能添加from位置;

from只能填以下3个数字其中一个

 0--- 从文件开头计算偏移量
 1--- 从当前位置开始计算偏移量
2--- 在文件末尾移动


seek(偏移量, from=0):从文件开头计算偏移量


seek(偏移量, from=1):从当前位置开始计算偏移量

seek(偏移量, from=1)


seek(偏移量, from=2):在文件末尾移动

seek(偏移量, from=2)


os模块的目录及文件操作

os模块为内置模块,因此在使用之前要在开头输入 import os 导入模块


| 方法                           | 作用                                                                         |
| ---------------------- | ------------------------------------------------------------ |
| os.getcwd()            | 显示当前路径                                                 |
| os.listdir()           | 展示当前目录内容                                             |
| os.chdir()             | 改变当前路径                                                 |
| os.mkdir()             | 创建目录(文件夹)                                           |
| os.rmdir()             | 删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError |
| os.system()            | 系统命令执行                                                 |
| os.remove()            | 用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。 |
| os.rename('old','new') | 重命名目录或文件                                             |


1.os.getcwd():显示当前路径


2.os.listdir():展示当前目录内容


3.os.chdir():改变当前路径或操作路径,只是临时改路径;该方法只能复制文件夹的绝对或者相对路径,文件不行


复制目录路径的方法

将指定目录路径复制到当前文件的路径


4.os.mkdir():创建目录(文件夹)

新建demo2文件夹


5.os.rmdir():删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError

删除demo2文件夹


6.os.remove():用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。

删除指定文件,可以用相对或者绝对路径


7.os.rename('old','new'):重命名目录或文件



os.path模块操作

| 方法                           | 作用                                                         |
| ------------------------------ | ------------------------------------------------------------ |
| os.path.join(path1 path2, ...) | 把目录和文件名合成一个路径                                   |
| os.path.basename(path)         | 返回文件名                                                   |
| os.path.abspath(path)          | 返回绝对路径                                                 |
| os.path.relpath(path[, start]) | path位置相对start的相对路径(相对路径)                      |
| os.path.getsize(path)          | 返回文件大小,如果文件不存在就返回错误                       |
| os.path.getctime(path)         | 返回文件 path 创建时间                                       |
| os.path.getmtime(path)         | 返回最近文件修改时间                                         |
| os.path.getatime(path)         | 返回最近访问时间(浮点型秒数)                               |
| os.path.exists(path)           | 如果路径 path 存在,返回 True;如果路径 path 不存在,返回 False。 |
| os.path.isdir(path)            | 判断路径是否为目录                                           |
| os.path.isfile(path)           | 判断路径是否为文件                                           |
| os.path.isabs(path)            | 判断是否为绝对路径                                           |


1.os.path.join(path1 path2, ...):把目录和文件名合成一个路径


2.os.path.basename(path):返回文件名

若是获取的是绝对路径,可以利用这个方法返回该路径下的文件名


3.os.path.abspath(path):返回绝对路径


4.os.path.exists(path):如果路径 path 存在,返回 True;如果路径 path 不存在,返回 False。


5.if not,os.path.exists(path),os.mkdir()组合运用


上下文管理器

自动执行关闭操作,不需要在末尾写 【文件.close】

一般格式:

with open ('通过相对路径/绝对路径查找文件' , '访问模式', 选填 encoding=’ ‘) as 自定义命名

as:取别名的意思


例子:

打开读取单个文件


同时操作多个文件的格式:

with open('homeworke.py', mode='r') as f1, \
     open('homeworke.py', mode='r') as f2, \
     open('homeworke.py', mode='r') as f3:
            s = f1.readlines()

多个文件同时操作



导自定义函数路径问题

import sys

sys.path #查看可导包的所有路径

sys.path.append()



赋予文件夹可导包权限

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码