【四】文件与异常2

文件

在我们读写一个文件之前需要打开文件

data=open(filename,mode)
  1. data是open()返回的文件对象
  2. filename是该文件的字符串名
  3. mode是文件类型和操作的字符串

mode第一个字母的文件类型:

  • r:只读。这是默认模式
  • r+:可读可写,不会创建不存在的文件,如果直接写文件,则从顶部开始写,覆盖之前此位置的内容
  • w:只写,如果文件不存在则新建,如果已存在则覆盖内容
  • w+:读写,如果文件不存在则新建,如果已存在则覆盖
  • x:在文件不存在的情况下新建并写文件

mode第二个字母的文件类型:

  • t:文本类型
  • b:二进制文件

使用write()写文本文件

使用write写入:

In [66]: poems=‘白日依山尽,黄河入海流,日穷千里目,更上一层楼‘
#打印poems的字节大小
In [67]: len(poems)
Out[67]: 23
#打开test.txt
In [68]: fout=open(‘test.txt‘,‘wt‘)
#将poems的内容写入
In [70]: fout.write(poems)
Out[70]: 23 #函数 write() 返回写入文件的字节数
#关闭连接
In [71]: fout.close()
In [72]: cat test.txt
白日依山尽,黄河入海流,日穷千里目,更上一层楼

使用print写入:

In [1]: poem="鹅鹅鹅,曲项向天歌,白毛浮绿水,红掌拨清波"
In [2]: fout=open(‘test.txt‘,‘wt‘)
In [3]: print(poem,file=fout)
In [4]: fout.close()
In [5]: cat test.txt
鹅鹅鹅,曲项向天歌,白毛浮绿水,红掌拨清波
  • sep 分隔符:默认是一个空格 ‘ ‘
  • end 结束字符:默认是一个换行符 ‘\n’
In [4]: fout=open(‘test.txt‘,‘w‘)
In [5]: poem="加油,好好学习,天天向上"
In [6]: print(poem,file=fout,sep=‘‘,end=‘‘)
In [7]: cat test.txt
In [8]: fout.close()
In [9]: cat test.txt
加油,好好学习,天天向上

如果字符串非常大,可以将数据分块,直到所有字符被写入:

In [14]: poem
Out[14]: ‘鹅鹅鹅,曲项向天歌,白毛湖绿水,红掌拨清波‘
In [15]: fout=open(‘libai.txt‘,‘w‘)
In [16]: off=0
In [17]: chunk=10
In [18]: while True:
    ...:     if off>size:
    ...:         break
    ...:     fout.write(poem[off:off+chunk])
    ...:     print(poem[off:off+chunk])
    ...:     off+=chunk
    ...:
鹅鹅鹅,曲项向天歌,
白毛湖绿水,红掌拨清
波
In [19]: fout.close()

如果 libai.txt 文件已经存在,使用模式 x 可以避免重写文件:

In [21]: fout=open(‘libai.txt‘,‘xt‘)
---------------------------------------------------------------------------
FileExistsError                           Traceback (most recent call last)
<ipython-input-21-2bb5519d7012> in <module>()
----> 1 fout=open(‘libai.txt‘,‘xt‘)

FileExistsError: [Errno 17] File exists: ‘libai.txt‘

使用 read()、readline() 或者 readlines() 读取文本文件

使用不带参数的 read() 函数一次读入文件的所有内容。

In [22]: fin=open(‘libai.txt‘,‘rt‘)
In [23]: poem1=fin.read()
In [24]: poem1
Out[24]: ‘鹅鹅鹅,曲项向天歌,白毛湖绿水,红掌拨清波‘
In [25]: fin.close()
In [26]: len(poem1)
Out[26]: 21

函数 readlines() 调用时每次读取一行,并返回单行字符串的列表

In [28]: poem=‘‘‘鹅鹅鹅,
    ...: 曲项向天歌,
    ...: 白毛湖绿水,
    ...: 红掌拨清波。
    ...: ‘‘‘
In [29]: fin=open(‘libai.txt‘,‘wt‘) #写入文件
In [30]: fin.write(poem)
Out[30]: 26
In [31]: fin.close()
In [32]: cat libai.txt
鹅鹅鹅,
曲项向天歌,
白毛湖绿水,
红掌拨清波。
In [33]: fin=open(‘libai.txt‘,‘rt‘) #读取文件
In [34]: lines=fin.readlines()
In [35]: fin.close()
In [36]: lines
Out[36]: [‘鹅鹅鹅,\n‘, ‘曲项向天歌,\n‘, ‘白毛湖绿水,\n‘, ‘红掌拨清波。\n‘]
In [37]: print(len(lines))
4
In [41]: for line in lines:
    ...:     print(line,end=‘‘)
    ...:
鹅鹅鹅,
曲项向天歌,
白毛湖绿水,
红掌拨清波。
时间: 2024-10-30 12:18:52

【四】文件与异常2的相关文章

Android学习——R文件丢失异常原因汇总

Console报错:R.java was modified manually! Reverting to generated version! 引言: R文件丢失异常在java开发中是个比较常见的异常,造成这个异常的原因可能非常微小,但是给Android开发者们造成的麻烦可是巨大的,当程序员们费尽千辛万苦,找到自己错在哪里的时候,绝对会对自己的粗心大意而捶胸顿足,哀叹不已. 异常提示: R.java was modified manually! Reverting to generated ve

R文件丢失异常原因汇总

引言: R文件丢失异常在java开发中是个比较常见的异常,造成这个异常的原因可能非常微小,但是给Android开发者们造成的麻烦可是巨大的,当程序员们费尽千辛万苦,找到自己错在哪里的时候,绝对会对自己的粗心大意而捶胸顿足,哀叹不已. 异常提示: R.java was modified manually! Reverting to generated version! 或者项目中gen目录下没有生成R文件,运行项目的时候会报错 我的错误: 最近一次我出现这个错误是因为新电脑中的Eclipse中指向

萌新向Python数据分析及数据挖掘 第一章 Python基础 第十节 文件和异常

第一章 Python基础 第十节 文件和异常 从文件中读取数据 读取文件.文件路径   1 filename = 'pi_digits.txt' #文件名取个代号 2 #读取整个文件 3 with open(filename) as file_object: 4 contents = file_object.read()# 给内容取个代号 5 print(contents.rstrip()) 6 #逐行读取 7 with open(filename) as file_object: 8 for

Head First Python 第二章 函数模块&amp;第三章 文件与异常&amp;第四章 持久存储&amp;第五章 处理数据

第三章 1.共享模块 模块和发布工具箱全世界共享模块 编写函数,以.py为文件后缀名,第三方库都在PyPI *注释代码:三引号(单双都可以) 发布过程P40 使用发布工具,函数模块变成了一个“发布”,可以使用import导入其他程序 2.如果函数模块功能不满意 添加参数以供api选择比添加函数工作量小! 首先考虑BIF内置函数 ----------------------------------------------------------- 第四章 1.文件 open()语句,readlin

class 10 文件和异常

掌握了编写组织有序而易于使用的程序所需的基本技能,该考虑让程序目标更明确,用途更大.本章中,将学习处理文件,让程序能够快速地分析大量的数据:我们将学习错误处理,避免程序在面对意外情形时崩溃:我们将学习异常,它们是Python创建的特殊对象,用于管理程序运行时出现的错误:我们还将学习模块json,它让我们能够保存用户数据,以免在程序停止运行后丢失. 学习处理文件和保存数据可以让我们的程序使用起来更容易:用户将能够选择输入什么样的数据,以及在什么时候输入:用户使用我们的程序做一些工作后,可将程序关闭

Java知识回顾 (6)表达式、方法、文件与异常

一.正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. Java 正则表达式和 Perl 的是最为相似的. java.util.regex 包主要包括以下三个类: Pattern 类: pattern 对象是一个正则表达式的编译表示.Pattern 类没有公共构造方法.要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象.该方法接受一个正则表达式作为它

文件与异常

到目前为止已经了解了如何处理数据,显示数据那么如何向程序传入数据 创建文件夹HeadFirstPython/chapter3 下载演示文件 wget http://python.itcarlow.ie/chapter3/sketch.txt 内容如下 Man: Is this the right room for an argument?Other Man: I've told you once.Man: No you haven't!Other Man: Yes I have.Man: Whe

第 10 章 文件和异常

至此,我们掌握了编写组织有序而易于使用的程序所需的基本技能,该考虑让程序目标更明确,用途更大了.在本章中,我们将学习处理文件,让程序能够快速地分析大量的数据:我们将学习错误处理,避免程序在面对意外情形时崩溃:我们将学习异常,它们是Python创建的特殊对象,用于管理程序运行时出现的错误:我们还将学习模块json,它让我们能够保存用户数据,以免在程序停止运行后丢失. 学习处理文件和保存数据可以让我们的程序使用起来更容易:用户将能够选择输入什么样的数据,以及在什么时候输入:用户使用我们的程序做一些工

第十章文件和异常

#1. #A:使用关键字with后,会在不需要访问文件后将其关闭 #B:open(),默认以"r"的形式打开文件,close()分别用于关闭文件 #C:读取文件的方法:read()默认读取整个文件,可以指定读取字节.readline()读取一行,readlines()按行读取后存入列表,当传入读取字节数目后,则读取的内容可能是行的一部分 #D:python3将文件当做一个可迭代的类型,此方法比较好 #E:seek()设置开始读的位置, tell()得到当前开始读取位置 #Test.tx