python文件流

打开文件

文件的基本方法

迭代文件内容

打开文件

打开文件,可以使用自动导入的模块io中的函数open。函数open将文件名作为唯一必不可少的参数,并返回一个文件对象。如果只指定一个文件名,则获得一个可读取的文件对象。

如果当前目录中有此文件则可以打开,如果位于其他位置则需要指定完整的路径,如果指定文件不存在,则如下报错。

文件模式

如果需要写入文件,则需要通过指定模式。函数open的参数模式常见有如下:


模式


描述


‘r‘


读取模式(默认)


‘w‘


写入模式(文件不存在时创建它)


‘t‘


文本模式(默认,与其他模式结合使用)


‘x‘


独占写模式,新建一个文件,如果该文件已存在则会报错。


‘a‘


附加模式(在既有文件末尾继续写入)


‘b‘


二进制模式(与其他模式结合使用)


‘+‘


打开一个文件进行更新(可读可写,与其他模式结合使用)

默认模式为‘rt‘,读取时将自动替换其他行尾字符(‘\r‘,‘\r\n‘),写入时将‘\n‘替换为系统的默认行尾字符(os.linesep)

要打开一个文本文件进行读写,可使用‘r+‘,但是会将既有内容删除,而‘w+‘不会。

文件的基本方法

读取和写入

管道重定向输出

随机存取

读取和写入行

关闭文件

文件最重要的功能就是提供和接收数据。在文本和二进制模式下,基本上分别将str和bytes类用作数据。

读取和写入:

使用read读取数据,默认读取全部内容。还可以指定参数,然后读取剩下的全部内容:

管道重定向输出

将一个命令的标准输出链接到下个命令的标准输入:

#cat some.txt

you are bad boy

#cat some.py

#!/usr/bin/evn python

# 计算sys.stdin中包含多少个单词的脚本

import sys

text = sys.stdin.read()

words = text.split()

wordcount = len(words)

print(wordcount)

#cat some.txt | python3 some.py

4

随机存取

可以使用方法seek和tell。

seek(offset,[, whence])将当前位置移到offset(指定字节数)和whence指定的地方(参数whence默认为io.SEEK_SET(0),偏移量是相对于文件开头的,而io.SEEK_SET(1),相对于当前位置进行移动,io.SEEK_SET(2),相对于文件末尾进行移动)

tell()返回当前位于文件的什么位置。

对行的读取和写入

可以使用方法readline,不指定参数默认读取一行并返回,指定参数为最多读取多少个字符。要读取文件中所有的行,并以列表的方式返回它们,可以使用方法readlines。方法writelines接受一个字符串列表写入文件中。

# 修改文件

关闭文件

避免锁定文件以防止修改,避免用完系统可能指定的文件打开配额。

确保文件关闭,可以使用try/finally语句。

try:

# 将数据写入到文件中

finally:

file.close()

with语句可以让你打开一个文件并赋值到一个变量,到达该句末尾时,将自动关闭文件,即便出现异常。

with open(‘somefile.txt‘) as somefile

do_something(somefile)

迭代文件内容

def process(string):
print(‘Processing:‘, string)

# 每次迭代一个字符
with open(‘fileone.txt‘) as f:
  while True:
        char = f.read(1)
  if not char: break
  process(char)

#每次迭代一行字符
with open(‘fileone.txt‘) as f:
    while True:
    line = f.readline()
                                                                                                                                                          process(line)

#读取所有内容,使用read
with open(‘fileone.txt‘) as f:                                                                                                                                                                                          for char in f.read():
    process(char)

#使用readlines
with open(‘fileone.txt‘) as f:                                                                                                                                                                                                                                    for char in f.readlines():
    process(char)

# 使用fileinput实现延迟迭代,读取实际需要文本的部分
import fileinput
for line in fileinput.input(‘fileone.txt‘):
    process(line)
 

文件迭代器

迭代文件

with open(‘fileone.txt‘) as f:  for line in f:  process(line)

不将文件对象赋给变量迭代文件

for line in open(fileone.txt):
    process(line)

对迭代器的操作也可以对文件做,如list(open(fileone.txt)):

>>> f = open(‘fileone.txt‘, ‘w‘)

>>> print(‘First‘, ‘line‘, file=f)

>>> print(‘Second‘, ‘line‘, file=f)

>>> f.close()

>>> lines = list(open(‘fileone.txt‘))

>>> lines

[‘First line\n‘, ‘Second line\n‘]

原文地址:https://www.cnblogs.com/whych/p/9678249.html

时间: 2024-10-17 07:07:49

python文件流的相关文章

python 文件流

open | write | read >>> with open('demo.txt' , 'wt') as f: #以文本(wt)形式写入操作 ... f.write("hello guohai") 12 >>> with open('demo.txt' , 'rt') as f: #以文本(rt)形式读取操作 ... data = f.read() >>> data 'hello guohai' >>> wi

Python Day2 基础 操作文件流

1.列表.元组 操作                                                                    推荐书籍    追风筝的人       白鹿原   琳达看美国 2.字符串操作 3.字典操作 4.集合操作 5.文件操作 6.字符编码和转码 7.内置函数 列表,元祖 列表   name = [2,3,4,3]   name.copy()  浅copy        import copy      name2=cooy.deepndcopy

pythoning——9:python文件操作

字面意思,文件操作,无非就是找到文件,打开文件,写入/删除文件,找不到文件就去创建文件,并没有什么特殊的.如果你是这么认为的,那就太天真了,在python中提供了更为合理的数据管理方式.并非是你想像中的那么简单. 首先是打开文件,打开文件需要调用open函数,提供文件名,及打开方式.打开方式有(默认为r): r: 只读模式 w: 只写模式 a: 追加模式(从文件结尾追加) r+: 读写模式 w+: 读写模式(会先清空,后写入,然后读取,写读更合理吧) a+: 读写模式(还是只会从结尾处追加) r

重定向C库中stdio文件中的printf()函数,文件流-->串口USART1

6.4 一些说明 数据属性可以重写同名的方法属性.这是为了避免在大型系统中产生问题的意外名称冲突.所以用一些减少冲突的常用方法是很有效果的.常用的方法包括:大写字母方法名称,用唯一的字符串来做为数据属性的名称(可以是个下划线_)或者用动词命名方法和用名字命名数据属性. 数据属性就像和对象的普通用户一样可以被方法引用.换句话说,类不能用来实现纯净的数据类型.事实上,在python中不能强制数据隐藏,一切基于约定.(另一方面,如C中写的,python的实现可以做到完全隐藏实现细节并且在必要是可以控制

C++、Python文件读写、定位等操作

一.C++文件流 1.文件流对象 C++中的文件流对象(fstream)是继承自iostream的一个类,其关系如下: fstream可以用IO运算符(>>和<<)读写文件,也可以用getline读文件. fstream特有的操作: fstream fstrm; 创建一个未绑定的文件流 fstream fstrm(s);   创建一个fstream,并打开名为s的文件,默认的文件模式依赖于fstream类型 fstream fstrm(s,mode); 与上一个构造函数类似,按指定

python文件的使用

文件 File 文件是用于数据存储的单位 文件通常用来长期存储数据 文件中的数据是以字节为单位进行顺序存储的 文件的操作流程 1. 打开文件 2. 读/写文件 3. 关闭文件 注: 任何操作系统,一个应用程序同时打开文件的数量有最大数限制 文件的打开函数: open(file, mode='rt') 用于打开一个文件,返回此文件流对象 如果文件打开失败,则会触发OSError类型的错误文件的关闭方法: F.close() 关闭文件,释放系统资源 # 1 打开文件 myfile = open('m

python3 文件流

文件流 # python里的打开一个文件用open(),如果不能打开,会抛出异常:OSError # 文件流的基本参数 # 1. file: 打开一个文件 # 2. mode: 打开的模式,默认模式为txt模式 # 3. buffering: 设置缓冲 # 4. encoding: 字符编码,一般用utf-8 # 5. errors: 报错级别 # 6. newline: 区分换行符 # 7. closefd: 传入的file参数类型 # 8. opener: # mode详情 # r 只读 #

五.Python文件IO和路径操作

目录 Python文件IO操作 上下文管理with 路径操作 01 Python文件IO操作: clumn column open 打开 read 读取 write 写入 close 关闭 readline 行读取 readlines 多行读取 seek 文件指针操作 tell 指针位置 打开文件 open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=No

Java 基础(四)| IO 流之使用文件流的正确姿势

为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 IO 流? 想象一个场景:我们在电脑上编辑文件,可以保存到硬盘上,也可以拷贝到 U 盘中.那这个看似简单的过程,背后其实是数据的传输. 数据的传输,也就是数据的流动.既然是流动也就会有方向,有入方向和出方向.举个上传文件的栗子,现在有三个对象,文件.应用程序.上传的目标地址(服务器).简化的上传文件有两步: 应用程序读文件