第六章、Python文件操作

Python可以对文件进行查看、创建等功能,可以对文件内容进行添加、修改、删除,且所使用到的函数在Python3.5.x为open,在Python2.7.x同时支持file和open,但是在3.5.x系列移除了file函数。

一、Python文件打开方式

文件句柄 = open(‘文件路径‘,‘打开模式‘)

Nginx_Conf= open(‘nginx.conf‘,‘r‘,encoding=‘utf-8‘)

Ps:文件句柄相当于于变量名,文件路径可以写为绝对路径也可以写为相对路径。

二、Python打开文件的模式

基本的模式

模式说明注意事项

r

只读模式

文件必须存在

w

只写模式

文件不存在则创建文件,文件存在则清空文件内容

x

只写模式

文件不可读,文件不存在则创建,存在则报错

a

追加模式

文件不存在创建文件,文件存在则在文件末尾添加内容

带+的模式

模式说明

r+

读写

w+

写读

x+

写读

a+

写读

带b的模式

模式说明

rb

二进制读模式

wb

二进制写模式

xb

二进制只写模式

ab

二进制追加模式

提示:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型

带+带b的模式

模式说明

rb+

二进制读写模式

wb+

二进制读写模式

xb+

二进制只写模式

ab+

二进制读写模式

三、Python文件读取方式

模式说明

read([size])

读取文件全部内容,如果设置了size,那么久读取size字节

readline([size])

一行一行的读取

readlines()

读取到的每一行内容作为列表中的一个元素

测试的文件名是"www.baidu.com.conf",文件内容为:

server {

listen80; //80端口

server_name www.baidu.com;//设置域名

?

location/{

index index.html;

root/usr/htdocs/linux; //直接输入linux.com是进到了这里 ,一般配置和解析php所在目录一直

}

?

location~\.php$ {

fastcgi_pass127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME/usr/htdocs/linux/$fastcgi_script_name; //当前虚拟主机对应的目录

include fastcgi_params;

}

}

read

代码:

#以只读的方式打开文件www.baidu.com.conf

f = open("www.baidu.com.conf","r")#读取文件内容赋值给变量c

c =f.read()#关闭文件

f.close()#输出c的值

print(c)

输出结果:

D:\Script\venv\Scripts\python.exe D:/python-new/Python练习/Python文件管理/file_op.py

server {

listen80; //80端口

server_name linux.com;//设置域名

?

location/{

index index.html;

root/usr/htdocs/linux; //直接输入linux.com是进到了这里 ,一般配置和解析php所在目录一直

}

?

location~\.php$ {

fastcgi_pass127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME/usr/htdocs/linux/$fastcgi_script_name; //当前虚拟主机对应的目录

include fastcgi_params;

}

}

readline

代码:

#!/usr/bin/env python

#~*~ coding: utf-8 ~*~

__author__ = "Zhang.H"?

Nginx_Conf= open("www.baidu.com.conf","r",encoding="utf-8") ## 以只读模式打开文件

print(Nginx_Conf.readline()) #读取第一行

print(Nginx_Conf.readline()) #读取第二行

print(Nginx_Conf.readline()) #读取第三行

Nginx_Conf.close() #关闭文件

输出结果:

D:\Script\venv\Scripts\python.exe D:/python-new/Python练习/Python文件管理/file_op.py

server {

?

listen80; //80端口

?

server_name www.baidu.com;//设置域名

readlines

#!/usr/bin/env python

#~*~ coding: utf-8 ~*~

__author__ = "Zhang.H"?

Nginx_Conf= open("www.baidu.com.conf","r",encoding="utf-8") #以只读的方式打开文件,将文件所有内容赋值给Nginx_Conf

for i in Nginx_Conf.readlines(): #遍历输出文件内容

print(i)

结果

D:\Script\venv\Scripts\python.exe D:/python-new/Python练习/Python文件管理/file_op.py

server {

?

listen80; //80端口

?

server_name www.baidu.com;//设置域名

?

?

?

location/{

?

index index.html;

?

root/usr/htdocs/linux; //直接输入linux.com是进到了这里 ,一般配置和解析php所在目录一直

?

}

?

?

?

location~\.php$ {

?

fastcgi_pass127.0.0.1:9000;

?

fastcgi_index index.php;

?

fastcgi_param SCRIPT_FILENAME/usr/htdocs/linux/$fastcgi_script_name; //当前虚拟主机对应的目录

?

include fastcgi_params;

?

}

?

}

四、Python文件写入方式

方法说明

write(str)

将字符串写入文件

writelines(sequence or strings)

写多行到文件,参数可以是一个可迭代的对象,列表、元组等

write

代码:

#!/usr/bin/env python

#~*~ coding: utf-8 ~*~

__author__ = "Zhang.H"?

Nginx_Conf= open("www.baidu.com.conf","w",encoding="utf-8") #以写的模式打开文件write.txt,没有则创建,有则覆盖内容

Nginx_Conf.write("Nginx_Config") #在文件内容中写入字符串

Nginx_Conf.close() #关闭文件

www.baidu.com.conf文件内容为:

Nginx_Config

writelines

代码:

#!/usr/bin/env python

#~*~ coding: utf-8 ~*~

__author__ = "Zhang.H"?

Mysql_conf= open("mysql.conf","w",encoding="utf-8") #以只写模式打开一个不存在的文件mysql.conf

Mysql_conf.writelines(["11","22","33"]) #写入一个列表

Mysql_conf.close() #关闭文件

mysql.conf文件内容:

112233

五、Python文件操作所提供的方法

f.close() 关闭文件

f.fileno() 返回文件描述符

f.readline() 从当前指针读取一行

f.readlines() 从当前指针读取到结尾的全部行

f.read() 从当前指针读多少个字节,没有参数读取全部

f.tell() 告诉当前指针,是字节

f.seek(offset [whence]) 移动指针,f.seek(0)把指针移动第一行第0个字节位置

offset: 偏移量

whence: 位置

0: 从文件头1:从当前位置2:从文件尾部

f.write(string) 打开文件时,文件不存在,r,r+都会报错,其他模式则不会

f.writelines() 必须是字符串序列,把字符串序列当作一个列表写进文件

f.flush() 在文件没有关闭时,可以将内存中的数据刷写至磁盘

f.truncate() 文件截取多少字节保留,指针后面的内容全部会清空

?

f.name 是返回文件名字,不是方法,是属性

f.closed 判断文件是否已经关闭

f.encoding 查看编码格式,没有使用任何编码,则为None

f.mode 打开文件的模式

f.newlines 显示出换行符的,空为默认\n不显示

六、同时打开多个文件

为了避免打开文件后忘记关闭,可以通过管理上下文,即:

with open(‘log‘,‘r‘) as f:

代码块

如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。

在Python 2.7 及以后,with又支持同时对多个文件的上下文进行管理,即:

with open(‘log1‘) as obj1, open(‘log2‘) as obj2:pass

七、文件系统功能

import os

目录相关:

os.getcwd() 返回当前工作目录

os.chdir() 切换目录

os.chroot() 设定当前进程的根目录

os.listdir() 列出指定目录下的所有文件名

os.mkdir() 创建指定目录

os.makedirs() 创建多级目录

os.rmdir() 删除陌路

os.removedirs() 删除多级目录

文件相关:

os.mkfifo() 创建管道文件

os.mknod() 创建设备文件

os.remove() 删除文件

os.rename() 文件重命名

os.stat() 查看文件的状态属性

os.symlink() 创建链接文件

os.unlink() 删除链接文件

os.utime() 更新文件时间戳

os.tmpfile() 创建并打开(w+b)一个新的

os.walk() 生成目录结构的生成器

访问权限:

os.access() 检验文件某个用户是否有访问权限

os.chmod() 修改权限

os.chown() 修改属主属组

os.umask() 设置默认权限模式

文件描述符:

os.open() 根据文件描述打开

os.read() 根据文件描述读

os.write() 根据文件描述符写

创建设备:

os.mkdev() 创建设备文件

os.major() 获取设备主版本号

os.minor() 获取设备次版本号

用户相关:

os.getuid() 获取当前用户的uid

os.getgid() 获取当前用户的gid

文件路径:

os.path.basename() 路径基名

os.path.dirname() 路径目录名

os.path.join() 将dirname()和basename()连接起来

os.path.split() 返回dirname(),basename()元组

os.path.splitext() 返回(filename,extension)元组

os.path.getatime()

os.path.getctime()

os.path.getmtime()

os.path.getsize() 返回文件的大小

os.path.exists() 判断指定文件是否存在

os.path.isabs() 判断指定的路径是否为绝对路径

os.path.isdir() 判断是否为目录

os.path.isfile() 判断是否为文件

os.path.islink() 判断是否为链接文件

os.path.ismount() 判断是否为挂载点

os.path.samefile() 判断两个路径是否指向了同一个文件

python对文件操作的相关函数_第六章、Python文件操作相关推荐

  1. python网络爬虫的项目背景_第四章 Python即时网络爬虫项目: 内容提取器的定义

    1. 项目背景 在python即时网络爬虫项目启动说明中我们讨论一个数字:程序员浪费在调测内容提取规则上的时间,从而我们发起了这个项目,把程序员从繁琐的调测规则中解放出来,投入到更高端的数据处理工作中 ...

  2. python中常用的序列化模块_第六章 常用模块(5):python常用模块(序列化模块:pickle,json,shelve,xml)...

    6.3.7 序列化模块 (pickle,json,shelve,xml) 文件写入,数据传输时,我们都是以字符串形式写入的(因为字符串可以encode成bytes). 那其他类型(比如字典,列表等)想 ...

  3. 《利用Python进行数据分析·第2版》第13章 Python建模库介绍

    第1章 准备工作 第2章 Python语法基础,IPython和Jupyter 第3章 Python的数据结构.函数和文件 第4章 NumPy基础:数组和矢量计算 第5章 pandas入门 第6章 数 ...

  4. 系统架构师学习笔记_第六章(下)_连载

    系统架构师学习笔记_第六章(下)_连载 6.3 基于 UML 的软件开发过程 6.3.1  开发过程概述 UML 是独立于软件开发过程的,能够在几乎任何一种软件开发过程中使用.迭代的渐进式软件开发过程 ...

  5. 第六章 Linux实际操作——实用指令

    第六章 Linux实际操作--实用指令 6.1 指定运行级别 6.2 找回root密码 6.3 帮助指令 6.3.1 man获得帮助信息 6.3.2 help指令 6.3.3 搜索引擎帮助更直接 6. ...

  6. 第六章 Linux 文件与目录配置

    第六章 Linux 文件与目录配置 6.1目录与路径 6.1.1 相对路径与绝对路径 6.1.2 目录的相关操作 cd //变换目录 . //代表此层目录 .. //代表上一层目录 - //前一个工作 ...

  7. Python编程:从入门到实践第六章读书笔记6.3遍历字典

    Python编程:从入门到实践第六章读书笔记6.3遍历字典 #coding:gbk#6.3.1遍历所有的键-值对 user_0 = {'username': 'efermi','first': 'en ...

  8. Python编程:从入门到实践第六章练习6.3

    Python编程:从入门到实践第六章练习6.3 #coding:gbk#6-4词汇表2 #参照6.3练习.py#6-5河流 rivers = {'nile': 'egypt','yellow rive ...

  9. java程序设计基础_陈国君版第五版_第六章例题

    java程序设计基础_陈国君版第五版_第六章例题 class Cylinder {double radius;int height;double pi = 3.14;void area(){Syste ...

最新文章

  1. 支持向量机原理(五)线性支持回归
  2. 弹出对话框提示输入_每日一贴——如何关闭CAD的各种提示信息和对话框?
  3. 让“云”无处不在-Citrix Xenserver之三 license server
  4. 技术点不亲身实验一遍,难免会被网文唬
  5. 大牛逝世 = 新人上位 = 科学进步?新研究表明确实如此
  6. 网络计算机室电源线怎么布,网吧综合布线(电源和网络)经验谈
  7. linux更改用户名_破旧安卓手机第二春,在安卓手机上使用Linux_deploy运行Linux
  8. SpringMvc异步请求的使用及部分原理
  9. 白话解释 Javascript 原型继承(prototype inheritance)
  10. arch linux系统安装教程,Arch Linux系统的安装(BIOS)教程,archlinux
  11. android局部布局替换,android – 子片段替换父片段根布局
  12. 道路上下行是什么意思_了解道路禁止符号 春节压岁钱少填罚款
  13. 【Teradata】系统吞吐量重要参数QPS(TPS)、并发数、响应时间
  14. Effective C# Item17:尽量减少装箱和拆箱
  15. java程序员表白代码_程序员表白代码,用过的人都找到了对象...
  16. [SUCCESS]前后端分离开发-入门案例 +VSCode安装
  17. An Introduction to Pairing-Based Cryptography学习笔记
  18. Kubeedge实现原理
  19. python123监考系统_2020-2021学年第1学期 期末考试监考安排
  20. 【论文翻译】Learning from Few Samples: A Survey 小样本学习综述

热门文章

  1. c语言系统函数——目录操作
  2. mysql 目录的了解以及Linux
  3. 一个简单的flask程序
  4. Docker-创建支持ssh服务的镜像
  5. iOS开发学无止境 - 只会左键断点?是时候试试这样那样断点了
  6. Nginx二级域名及多Server反向代理配置
  7. android5.1蓝牙opp协议去掉Notification和Dialog操作提示
  8. Camera--V4L2驱动学习记录
  9. python之OrderedDict
  10. dpkg命令用法、Ubuntu下deb包的解压、打包、安装、卸载及常用命令参数