Python菜鸟学习手册10----文件的输入与输出

文本文件的读写主要通过open()所构建的文件对象来实现。

基本格式

f = open(文件名,模式)

最常用的模式有:

"r"       # 只读

“w”     # 写入                                                               ---->如果文件中已经有内容,会把内容抹掉,如果不存在该文件,会新建文件

“a”      #追加模式                                                       ----->在已有的文字后添加文字

“b”      #二进制模式(还在其他模式中追加使用)----->一般在处理音频、图像等文件的时候使用

“+”      #读/写模式(可在其他模式中追加使用)        ----->r+、w+ 可读可写

f = open('test1.txt', 'w')       #创建一个名为f的类文件对象,对test1.txt进行写操作
f.write("大家好,我是王尼玛")    #像文件中写入字符串
f.close() 

f = open('test1.txt')            #如果不写模式,默认为读模式

while True:
    line = f.readline()          #一次读一行
    if len(line) == 0:
        break
    print (line,end="")          #不换行

f.close()

输出:

大家好,我是王尼玛
f=open("test.txt","w")
f.write("0123456789")
f.seek(4)                     #跳到第4个字节
f.write("Hello")
f.close()

f=open("test.txt","r")
print(f.read())               #把字符串全部输出
f.seek(2)                     #跳回到第2个字符
print(f.read(5))              #输出接下来的5个字节
f.close()

输出:

0123Hello9
23Hel

小提示:

1.

以上所讲的仅仅是Python最基本的文件读写功能。更加丰富的文件读写功能由Python的标准库提供。

2.read() readline()以及readlines()用法

read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。然而 .read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理。

.readline() 和 .readlines() 非常相似。它们都在类似于以下的结构中使用:

fh = open('c:\\autoexec.bat')
for  line in  fh.readlines():
     print(line)

.readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的for ... in ...
结构进行处理。另一方面,.readline() 每次只读取一行,通常比 .readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 .readline()。(readlines()的输出格式[“I’ll write this message for you\n”, “hehe,that’s will be ok.\n”])

上一讲:Python菜鸟学习手册09----面向对象续

下一讲:

如果有什么疑问欢迎到我的微信公众号提问~

时间: 2024-10-20 10:41:02

Python菜鸟学习手册10----文件的输入与输出的相关文章

Python菜鸟学习手册11----异常处理

介绍 在项目开发中,异常处理是不可或缺的.异常处理帮助人们debug,通过更加丰富的信息,让人们更容易找到bug的所在.异常处理还可以提高程序的容错性. >>> 1/0 Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> 1/0 ZeroDivisionError: division by zero 上例中输入一除以零触发ZeroDivisionE

Python菜鸟学习手册12----循环对象

什么是循环对象 循环对象是这样一个对象,它包含有一个next()方法(__next__()方法,在python 3x中), 这个方法的目的是进行到下一个结果,而在结束一系列结果之后,举出StopIteration错误. 当一个循环结构(比如for)调用循环对象时,它就会每次循环的时候调用next()方法,直到StopIteration出现,for循环接收到,就知道循环已经结束,停止调用next(). 假设我们有一个test.txt的文件: 1234 abcd efg 我们运行一下python命令

Python菜鸟学习手册05----控制流

在到目前为止我们所见到的程序中,总是有一系列的语句,Python忠实地按照它们的顺序执行它们.如果你想要改变语句流的执行顺序,该怎么办呢?例如,你想要让程序做一些决定,根据不同的情况做不同的事情,例如根据时间打印"早上好"或者"晚上好". 类似java语言,Python中有三种控制结构--三种控制流语句--if.for和while. 1.if if主要用于条件判断. 1.1 if结构 i = 1 x = 1 if i > 0: #注意后面的冒号必不可少! x

Python菜鸟学习手册15----多线程

线程与进程 程序相当于工厂,进程相当于车间,线程相当于工人.在一个工厂中往往有多个车间,在一个车间上有多个工人并行工作. 同车间上的工人共享房间,但是有些房间一次只能容纳一个人,比如厕所.在厕所里有人的时候,其他人不能进入.一个防止他人进入的简单方法,就是门口加一把锁.先到的人锁上门,后到的人看到上锁,就在门口排队,等锁打开再进去.这就叫"互斥锁"(Mutual exclusion,缩写 Mutex). 还有些房间,可以同时容纳n个人,如果人数大于n,多出来的人只能在外面等着.这时的解

Python菜鸟学习手册06----函数

1.简介 函数是重用的程序段.它们允许你给一块语句一个名称,然后你可以在你的程序的任何地方使用这个名称任意多次地运行这个语句块.这被称为调用函数.我们已经使用了许多内建的函数,比如input()和range(). 2.函数的定义和调用 函数通过def关键字定义.def关键字后跟一个函数的标识符名称,然后跟一对圆括号.圆括号之中可以包括一些变量名,该行以冒号结尾.接下来是一块语句,它们是函数体. def sayHi():<span style="white-space:pre"&g

Python 文件的输入与输出

1. 文本文件的读写主要通过open()所构建的文件对象来实现.我们打开一个文件,并使用一个对象来表示该文件 , f = open(d,r) 其中d是文件名,r是模式 "r" 文件只读,使用 f.write()会报错 "w" 用于写入,每次使用f.write()都会把上一次给覆盖掉 "r+" 用于读写 "a" 文件追叫,每次写入会追加在前一次后面 ##1. 创建文件对象(%%在编代码的文件夹下建一个new.txt) f=ope

Python入门(二)——IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化

Python入门(二)--IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化 我们从今天就开始正式的学习PY交易了,PY交易还行,我们有基础之后学习起来倒不是说那么的被动,我学习的是Python2.7,虽然现在随着版本的迁移至Python3,但是这个并不会对我们造成什么困扰,毕竟只是一个适应阶段 我们的学习资料:廖雪峰官方网站Python2.7教程 一.IDE选择PyCharm 我们虽然在前面一章已经配置过,但是我们还是有很多的IDE可以开发Py,比如su

雷林鹏分享:Ruby 文件的输入与输出

Ruby 文件的输入与输出 Ruby 提供了一整套 I/O 相关的方法,在内核(Kernel)模块中实现.所有的 I/O 方法派生自 IO 类. 类 IO 提供了所有基础的方法,比如 read. write. gets. puts. readline. getc 和 printf. 本章节将讲解所有 Ruby 中可用的基础的 I/O 函数.如需了解更多的函数,请查看 Ruby 的 IO 类. puts 语句 在前面的章节中,您赋值给变量,然后使用 puts 语句打印输出. puts 语句指示程序

C++:文件的输入和输出

1.共同的打开文件方式: fin.open("test.txt",ios::binary) fout.open("test.txt",ios::binary) fboth.open("test.txt",ios::in|ios::out|ios::binary) 或者 fistream fin("test.txt",ios::binary) fostream fout("test.txt",ios::bin