博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python File文件
阅读量:5168 次
发布时间:2019-06-13

本文共 2672 字,大约阅读时间需要 8 分钟。

一、 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)返回存入的字节

读取数据

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

存储在文件中

也可以存在文件中,使得对象持久化。使用的是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,爬一个网页的数据

二、 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):返回文件路径

转载于:https://www.cnblogs.com/yuello/p/9188120.html

你可能感兴趣的文章
Unicode和多字节字符集 (MBCS) 杂谈
查看>>
left 和 margin-left
查看>>
WOW! I have a TOFEL BLOG!
查看>>
PAT (Basic Level) Practise (中文)- 1016. 部分A+B (15)
查看>>
应用程序利用回调向表现层实时推送数据
查看>>
网络编程-UDP
查看>>
[JAVA] Tcp客户端和服务器简单代码
查看>>
管道和FIFO 二
查看>>
JAVA Synchronized (三) volatile 与 synchronized 的比较
查看>>
UIView的layoutSubviews和drawRect方法何时调用
查看>>
Android事件分发机制浅析(2)
查看>>
在html中展示pdf
查看>>
.net托管代码和非托管代码的精要理解
查看>>
用记事本写第一个Java程序
查看>>
ios 中的UI控件学习总结(1)
查看>>
C#中的各种排序算法
查看>>
C#.NET中使用存储过程的方法及其优点
查看>>
datatable导出到Word / Excel / PDF / HTML .NET
查看>>
sql单表简单的分页脚本(续)
查看>>
Unity5 AssetBundle系列——资源加载卸载以及AssetBundleManifest的使用
查看>>