打开文件

文件的基本方法

迭代文件内容

打开文件

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

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

文件模式

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

模式

描述

'r'

读取模式(默认)

'w'

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

't'

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

'x'

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

'a'

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

'b'

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

'+'

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

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

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

文件的基本方法

读取和写入

管道重定向输出

随机存取

读取和写入行

关闭文件

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

读取和写入:

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

管道重定向输出

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

#cat some.txt

you are bad boy#cat some.py

#!/usr/bin/evn python3

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

importsys

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)

迭代文件内容

defprocess(string):print('Processing:', string)#每次迭代一个字符

with open('fileone.txt') as f:whileTrue:

char= f.read(1)if not char: breakprocess(char)#每次迭代一行字符

with open('fileone.txt') as f:whileTrue:

line=f.readline()process(line)#读取所有内容,使用read

with open('fileone.txt') as f:for char inf.read():

process(char)#使用readlines

with open('fileone.txt') as f:for char inf.readlines():

process(char)#使用fileinput实现延迟迭代,读取实际需要文本的部分

importfileinputfor line in fileinput.input('fileone.txt'):

process(line)

文件迭代器

迭代文件

with open('fileone.txt') as f:for line inf:

process(line)

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

for line inopen(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 ', 'Second line ']

python文件输出-python文件流相关推荐

  1. Altium Designer生产文件输出与文件归档

    一.生产文件输出 Gerber文件是线路板行业软件描述线路板(线路层.阻焊层.字符层等)图像及钻.铣数据的文档格式集合,是线路板行业图像转换的标准格式.作为初识PCB的小白,往往会将PCB源文件发给板 ...

  2. 光绘文件输出GERBER文件

    博主学习时的记录,便于日后忘记可以回顾 光绘文件输出GERBER文件 PCB板layout结束后,制作光绘文件 点击Manufacture→Artwork→film Control 按图示添加需要输出 ...

  3. 【python】输出到文件, f.write与print

    将控制台print的信息输出到文件,py2.x可以利用流输入符>>,py3.x可以使用file参数 1.输出到文件 I/O 将信息输出到文件最直接的方法是使用文件I/O: f = open ...

  4. python文件输出-Python 文件和输入输出小结

    1.打开和关闭文件(open(),file(),close()) 有两种内建函数可以获取文件对象:open和file.他们的用法完全一样.下面只以open()为例子讲解.获取一个文件对象(打开文件)的 ...

  5. python文件输出-python 文件的输入输出

    一:文件的输入: 在前面python基础命令中,我们已经介绍过输入,在此举几个例子解释一下两者的区别 raw_input()函数从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符): input ...

  6. python控制台输出到文件_Python print 立即打印内容到重定向的文件

    看到本文标题也许要奇怪了,Python 的 print 难道不是也上可以看到结果的吗?在 Python shell 下只要 >> print('Hello world!') Hello w ...

  7. python文件输出exe文件反汇编_python 反编译exe文件为py文件的实例代码

    我们用pyinstaller把朋友文件打包成exe文件,但有时候我们需要还原,我们可以用pyinstxtractor.py 用法: python pyinstxtractor.py xxx.exe 之 ...

  8. python文件输出-python将控制台输出保存至文件的方法

    很多时候在Linux系统下运行python程序时,控制台会输出一些有用的信息.为了方便保存这些信息,有时需要对这些信息进行保存.这里介绍几种将控制台输出保存到文件中的方式: 1 重定向标准输出流 重定 ...

  9. python结果输出到文件-python print输出到文件

    要将程序的输出送到一个文件中,需要在 print 语句后面使用 >> 指定一个文件,如下所示: principal = 1000 # 初始金额 rate = 0.05 # 利率 numye ...

最新文章

  1. MySQL 复制 主键冲突
  2. 动态规划——最长公共子序列(LCS)
  3. Mahout的推荐系统
  4. python闭环最短路径_python实现最短路径的实例方法
  5. 安装 | CCS5.5安装包与licence以及安装教程
  6. 优化器是怎么得到执行计划的?
  7. [BZOJ2655] calc
  8. 读取web应用的properties文件方法
  9. Job System之Hello World
  10. 最佳开源大数据工具-2015
  11. Ubuntu 下如何查看已安装软件版本
  12. Flutter之RenderObjectWidget
  13. Java8中关于LocalDateTime转换方法总结
  14. winusb —— 不再为你的usb设备编写驱动
  15. 并发编程的艺术04-TAS自旋锁
  16. sql的datetime 数据类型
  17. 为什么非全站升级HTTPS不可? 1
  18. AC7811-FOC无感控制代码详解
  19. 7、数据恢复:文件误删、硬盘被格式化后的数据恢复
  20. Symbian OS SDKs简介(转)

热门文章

  1. 开发日记 20200129 新年这几天的总结
  2. 开发日记-20190916 gradle新的依赖方式implementation,api,compileOnly
  3. beyond compare 4 的30天试用期已过-解决方法
  4. 开发日记-20190827 关键词 计算机网络
  5. NoSQL生态系统——事务机制,行锁,LSM,缓存多次写操作,RWN
  6. docker 搭建私有仓库
  7. 牛客2018校招 1. 拼多多 大整数相乘
  8. Django----缓存
  9. Struts2请求参数合法性校验机制
  10. Hibernate使用C3P0配置