python file_Python File文件-程序员宅基地

技术标签: python file  

一、 python文件访问

1, 在python中要访问文件,首先要打开文件,也就是open()这个函数

其中三个常用的参数为(1,要操作的文件路径2,访问的方式3,encodeing=字符编码)

有很多种访问方式

(1), r: 只读

(2), w: 只写,文件已存在则清空,不存在则创建

(3), a: 追加,写在文件末尾,如果文件存在,则在文件最后去追加,文件不存在则创建

(4), +-: 更新(可读可写)

(5), r+:以只读的模式打开(参见r)

(6), w+: 以只写的方式打开(参见w)

(7), a+ : 以追加的方法打开(参见a)

(8), rb:以二进制读模式打开

(9), wb:以二进制写模式打开

(10), ab:以二进制追加模式打开(参见a)

(11), rb+:以二进制读写模式打开(参见r+)

(12), wb+:以二进制读写模式打开(参见w+)

(13), ab+: 以二进制读写模式打开(参见a+)

2,文件的操作

1,open() 打开文件

2,read()读取文件

readline()读取整行,包括“\n”字符

readlines()读取文件,最后把文件每行内容作为一个字符串放在一个list中

注意:read系列函数的参数可以控制读取的字节数量

3,write()写文件,要传入一个字符串的参数

writelines()写文件,要传入一个列表

4,close() 关闭文件,关闭后不再进行读写操作

flush() 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。

next(文件) 返回文件的下一行数据,从第一行数据开始

5,seek( )用于移动指定位置

参数 offset—开始偏移量,也就是代表需要移动的字节数

Whence---可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起

注意:如果偏移是2的时候,偏移量的数必须要为复数

tell()返回文件当前位置

6,案例中要用到的标签库和一些关键字

1, Importcodecs 默认编码Unicode,这样会省去一些转换编码的事情

2, with用法,不需要用fd.close()关闭文件

with codecs.open('3.txt','rb') as fd:

print fd.read()

3,对象序列化与反序列化

通过将对象序列化可以将其存储在变量或者文件中,可以保存当时对象的状态,实现其生命周期的延长。并且需要时可以再次将这个对象读取出来。Python中有几个常用模块可实现这一功能。

pickle模块

存储在变量中

dumps(obj)返回存入的字节

70

读取数据

数据以字节保存在了data变量中,需要再次使用的时候使用loads函数就行

70

存储在文件中

也可以存在文件中,使得对象持久化。使用的是dump和load函数,注意和上面的区别,少了s。由于pickle写入的是二进制数据,所以打开方式需要以wb和rb的模式

1

2

3

4

5

6

7

8

# 序列化

with open('abc.pkl', 'wb') as f:

dic = {'age': 23, 'job': 'student'}

pickle.dump(dic, f)

# 反序列化

with open('abc.pkl', 'rb') as f:

aa = pickle.load(f)

print(aa)

4,爬一个网页的数据

70

二、 OS模块操作

os.sep:取代操作系统特定的路径分隔符

os.name:指示你正在使用的工作平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。

os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径。

os.getenv()和os.putenv:分别用来读取和设置环境变量

os.listdir():返回指定目录下的所有文件和目录名

os.remove(file):删除一个文件

os.stat(file):获得文件属性

os.chmod(file):修改文件权限和时间戳

os.mkdir(name):创建目录

os.rmdir(name):删除目录

os.removedirs(r“c:\python”):删除多个目录

os.system():运行shell命令

os.exit():终止当前进程

os.linesep:给出当前平台的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'

os.path.split():返回一个路径的目录名和文件名

os.path.isfile()和os.path.isdir()分别检验给出的路径是一个目录还是文件

os.path.existe():检验给出的路径是否真的存在

os.listdir(dirname):列出dirname下的目录和文件

os.getcwd():获得当前工作目录

os.curdir:返回当前目录('.')

os.chdir(dirname):改变工作目录到dirname

os.path.isdir(name):判断name是不是目录,不是目录就返回false

os.path.isfile(name):判断name这个文件是否存在,不存在返回false

os.path.exists(name):判断是否存在文件或目录name

os.path.getsize(name):或得文件大小,如果name是目录返回0L

os.path.abspath(name):获得绝对路径

os.path.isabs():判断是否为绝对路径

os.path.normpath(path):规范path字符串形式

os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)

os.path.splitext():分离文件名和扩展名

os.path.join(path,name):连接目录与文件名或目录

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

os.path.dirname(path):返回文件路径

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39936086/article/details/109974106

智能推荐

android图片裁剪拼接实现(一):Matrix基本使用-程序员宅基地

一、前文 之前有个朋友委托我实现一个图片拼接的组件,感觉挺有意思,于是周末花了些时间去研究了下,其实拼接这一步并不难,但是我在研究中发现了Matrix这个东西,非常好的东西。为此,我竟然拾起了多年没有动过的线性代数。二、原理 要彻底搞懂matrix还是需要一定的线性代数上面的理解,不过对于基本使用,了解到矩阵乘法就足够了。 在android坐标系中,分为x、y和z三个轴,分别代表了长..._android图片拼接

华为数据之道-程序员宅基地

感谢华为公司数据管理部编写了此书。编者在第一章讲述了企业数字化转型的必要性。第二章讲了建立企业级数据综合治理体系。编者认为,要确保关键数据资产有清晰的业务管理责任,IT建设有稳定的原则和依据,作业人员有规范的流程和指导,做到以上这些,需要一套企业级的数据综合治理体系;只有这样,当面临争议时,有裁决机构和升级处理机制;治理过程所需的人才、组织、预算有充足的保障。2.1建立公司级的数据治理政策华为数据管理总纲1,信息架构管理原则:建立企业级信息架构,统一数据语言;项目遵从数据管控要求;应..._华为数据之道

MAC配置环境变量-程序员宅基地

为什么80%的码农都做不了架构师?>>> ...

将Ubuntu 16.10主文件夹里的中文文件夹名称改成英文-程序员宅基地

将Ubuntu主文件夹里的中文文件夹名称改成英文Ubuntu中文版本把用户主目录下的文件夹名称都默认设置成了中文(home文件里用户目录的“桌面”、“图片”、“视频”、“音乐”……都是中文的),这其实对于英文不太好才选择中文版本的Ubuntu系统也未必是一件好事,当在各个路径跳转的时候必须得使用中英文切换,感觉很复杂,所以这些默认文件夹名称还是英文的

iOS开发必备OC和Swift的转换速查手册(强力推荐)_ios oc转swift-程序员宅基地

这篇文章主要给大家介绍了关于Objective-C和Swift的转换速查手册的相关资料,文中通过示例代码介绍的非常详细,非常推荐给大家参考学习使用,盛情邀请读者进入小编交流群:624212887,一起交流学习前言如果你正要从Objective-C过渡到Swift,或反过来,一个在两种语言间显示等效代码的小手册会很有帮助。本文内容就是这些:苹果开发者的红宝书,包含变量,集合,函数,类等等。..._ios oc转swift

多个UIViewController中复用NIB文件-程序员宅基地

最近在项目开发过程中,在UI开发方面我的一个目标是可以通过XCode自带的Interface Builder进行界面开发,从而实现界面和逻辑的更好分离以及随之而来的更好的维护性和扩展性。不过在交流这想法的过程中,一些同事也提出了很好的建议和顾虑。其中一个我没有意识到的问题就是开发过程中或有很多UIViewController的界面几乎一致,这样如果按常规每个Co...

随便推点

Jquery 获取日期date()对象-程序员宅基地

获取JavaScript 的时间使用内置的Date函数完成var mydate = new Date();mydate.getYear(); //获取当前年份(2位)mydate.getFullYear(); //获取完整的年份(4位,1970-????)mydate.getMonth(); //获取当前月份(0-11,0代表1月)mydate.getDate(); //获取当...

GridControl页脚显示列的汇总数据_dev gridcontrol footer显示合计-程序员宅基地

gridView4.OptionsView.ShowFooter = true;//启用显示页脚 //索引为1的列gridView4.Columns[1].SummaryItem.DisplayFormat = "{0:0.##}";gridView4.Columns[1].SummaryItem.FieldName = "TotalMoney";gridView..._dev gridcontrol footer显示合计

阿里云高效云盘和SSD云盘有什么区别?哪个更好?-程序员宅基地

本文描述了块存储性能的重要指标、不同块存储类型的性能、性能测试方式和结果解读。衡量指标衡量块存储产品的性能指标主要包括:IOPS、吞吐量和访问时延。IOPSIOPS是Input/Output Operations per Second,即每秒能处理的I/O个数,用于表示块存储处理读写(输出/输入)的能力。如果要部署事务密集型应用,典型场景比如数据..._oos与ssd云存储区别

SVN仓库转Git仓库(针对大仓库)-程序员宅基地

2019独角兽企业重金招聘Python工程师标准>>> ...

Retrofit简单使用(GET、POST)_android retrofitmanager get post-程序员宅基地

首先呢 老老实实导依赖就行了 implementation 'com.squareup.retrofit2:retrofit:2.5.0' implementation 'com.squareup.retrofit2:converter-gson:2.0.2' implementation 'com.squareup.okhttp3:logging-interceptor:3...._android retrofitmanager get post

【51单片机快速入门指南】6.3:DS18B20 单总线数字温度计的多路读取_温度计单片机读取数据-程序员宅基地

目录硬知识DS18B20介绍时序初始化时序写时序读时序命令ROM 操作命令ROM 搜索举例存贮器操作命令示例程序DS18B20.cDS18B20.h测试程序定时器中断服务函数单传感器时ID的获取 main.c单传感器读取温度和读取特定ID传感器的温度普中51-单核-A2STC89C52 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0硬知识 &n_温度计单片机读取数据