Python基础 - 文件和流

简介: Python基础 - 文件和流

1、打开文件


open(name[,mode[,buffering]])


open函数使用一个文件名作为其唯一的一个强制参数,然后返回一个文件对象。模式(mode)和缓冲区(buffering)是可选的。


模式:


   'r'  读模式


  'w'   写模式


  'a'   追加模式


   'b'    二进制模式,添加到其他模式中使用


   '+'   读/写模式,添加到其他模式中使用


'+'参数可以用来任何模式后,指明读和写都是可以的。'b'模式改变处理文件的方法。


二进制模式和文本模式的区别:在使用二进制模式时,python会原样地给出文件中的内容,但文本模式下则不一定。python会在文本模式下做一些转换:当在windows下用文本模式读取文件时,python会将\r\n转换成\n,相反,当在windows下用文本模式写文件时,会把\n转换成\r\n。


缓冲:


 如果参数为0,I/O就是无缓冲,所有的读写操作直接针对硬盘。如果是1,I/O就用内存来代替硬盘,是程序更快,使用flush或close时才把内容写入硬盘。


2、读和写


f = open()


f.read(n) 读取n个字节


f.write(str)


f.close()


3、管式输出


使用管道可以在一个命令的后面续写其他多个命令,管道符号将一个命令的标准输出和下一个命令的标准输入连在一起。


$ cat test.txt | python somescript.py


文件流随机访问函数seek(offset),把当前位置移动到offset定义的位置。


4、读写行


file.readline(n)当n为空是,读取单独一行,并读取文件换行符,当n为非负值时读取文件的前n个字符。


file.readlines()读取一个文件中的所有行,并以列表的返回。


file.writeline()没有此函数。


file.wirtelines()将一个字符串列表写入到字符串文件中。


5、如果想确保文件被关闭了,那么应该使用try/finally语句,并且在finally字句中调用close()方法。


try:


 file = open()


 #操作文件


finaly:


 file.close()


with语句可以打开文件并将其赋值到变量上:


with open() as somefile:
    do_someting(somefile)

6、对文件内容进行迭代


6.1 按字节处理,在循环里做如下操作


f.read(1)


6.2 按行处理,在循环里做如下操作


f.readline()


6.3 处理整个文件


f.read() 将文件当做一个字符串来获取


f.readlines() 将文件读入到一个字符串列表


7、使用fileinput实现懒惰行迭代


懒惰行迭代的原因:在读取非常大的文件,readlines会占用太多的内存,而懒惰行迭代只是读取文件中实际需要的部分。


import fileinput
for line in fileinput.input(filename):
  process(line)

8、文件迭代器


文件对象是可以按照行进行迭代的。


f = open(filename)
for line in f:
  process(line)
f.close()


可以对文件迭代器执行和普通迭代器相同的操作:list(open(filename))


相关文章
|
4天前
|
Python
Python代码扫描目录下的文件并获取路径
【5月更文挑战第12天】Python代码扫描目录下的文件并获取路径
21 1
|
4天前
|
存储 JSON 数据库
Python中列表数据的保存与读取:以txt文件为例
Python中列表数据的保存与读取:以txt文件为例
18 2
|
4天前
|
存储 NoSQL MongoDB
MongoDB数据库转换为表格文件的Python实现
MongoDB数据库转换为表格文件的Python实现
36 0
|
4天前
|
Shell Python
Python Stock guess_indicators_daily_job.py文件的调整
Python Stock guess_indicators_daily_job.py文件的调整
16 1
|
4天前
|
XML 前端开发 数据格式
BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据
【5月更文挑战第10天】BeautifulSoup 是 Python 的一个库,用于解析 HTML 和 XML 文件,即使在格式不规范的情况下也能有效工作。通过创建 BeautifulSoup 对象并使用方法如 find_all 和 get,可以方便地提取和查找文档中的信息。以下是一段示例代码,展示如何安装库、解析 HTML 数据以及打印段落、链接和特定类名的元素。BeautifulSoup 还支持更复杂的查询和文档修改功能。
23 1
|
2天前
|
Python
Python办公自动化|自动整理文件,一键完成!
Python办公自动化|自动整理文件,一键完成!
|
3天前
|
Python
Python知识点——文件和数据格式化
Python知识点——文件和数据格式化
7 0
|
4天前
|
存储 JSON 安全
Python中的文件操作与文件IO操作
【5月更文挑战第14天】在Python中,文件操作是常见任务,包括读取、写入和处理文件内容。`open()`函数是核心,接受文件路径和模式(如'r'、'w'、'a'、'b'和'+')参数。本文详细讨论了文件操作基础,如读写模式,以及文件IO操作,如读取、写入和移动指针。异常处理是关键,使用`try-except`捕获`FileNotFoundError`和`PermissionError`等异常。进阶技巧涉及`with`语句、`readline()`、`os`和`shutil`模块。数据序列化与反序列化方面,介绍了
17 0
|
4天前
|
Python
python如何读取excel文件,并修改内容?
python如何读取excel文件,并修改内容?
9 0
|
4天前
|
Unix Linux 数据处理
使用Python批量复制文件夹及其子文件夹下的指定文件
使用Python批量复制文件夹及其子文件夹下的指定文件
14 1