51学通信论坛2017新版
标题:
1.15 文件的基本操作
[打印本页]
作者:
admin
时间:
2017-12-15 14:06
标题:
1.15 文件的基本操作
衍伸阅读:
Python读取文件的方法
文件读写:廖雪峰的博客
一 对文件操作流程
打开文件,得到文件句柄并赋值给一个变量
通过句柄对文件进行操作
关闭文件
模式mode
含义
说明
r
只读(不可写)
如果未指定mode,则默认为此’r’模式
w
只写
如果用’w’,会把原先已存在的文件中的内容擦除(清除/冲)掉
a
附加/追加
写数据时,会自动添加到(已存)文件的末尾
r+
即可以读,也可以写
二 对文件的常用操作
准备工作:
1)在python源代码当前目录创建一个新的txt文件,命名为juzi.txt。
内容如下:
(注意:第3行有个空行)
1.a heart that loves is always young.
有爱的心永远年轻。
2.brief is life, but love is long.
生命虽短,爱却绵长。
3.every day without you is like a book without pages.
没有你的日子就像一本没有书页的书.
2.1)打开和读取文件的全部内容(open和read)
代码:
f = open('y:\python code demo\juzi.txt') #可以带绝对路径,也可以不写路径,会自动找系统路径。
print(f.read()) # 读取文件的全部内容
复制代码
输出:
1.a heart that loves is always young.
有爱的心永远年轻。
2.brief is life, but love is long.
生命虽短,爱却绵长。
3.every day without you is like a book without pages.
没有你的日子就像一本没有书页的书.
复制代码
在本例中,我们尝试对文件读两遍,会出现什么情况呢?
代码:
f = open('y:\python code demo\juzi.txt') #可以带绝对路径,也可以不写路径,会自动找系统路径。
data=f.read()
data2=f.read()
print("data is:",data)
print("data2 is:",data2)
复制代码
输出:
data is: 1.a heart that loves is always young.
有爱的心永远年轻。
2.brief is life, but love is long.
生命虽短,爱却绵长。
3.every day without you is like a book without pages.
没有你的日子就像一本没有书页的书。
data2 is:
复制代码
可以看到,data变量输出正常,读取了整个文件内容。但data2输出为空。为什么呢?因为read操作时从文件头读到文件尾部,文件读一遍就读完了。
如果再执行read操作相当于就从文件尾部开始读了。自己就为空了。那怎样才能实现read两遍文件的操作呢?
(不用close文件再打开,那是笨办法)只需要想办法让文件的指针从尾部重新回到头部就可以了。
2.2)文件的Write写操作(如果文件不存在,将创建一个新文件,并添加内容)
Write本质上是创建一个新的文件,文件原有的内容将被删除。
代码:
f = open("juzi.txt",'w') #'w'表示为write写模式,默认为'r'即读模式。
data=f.write("51学通信棒棒哒")
print(data)
复制代码
输出:
8
复制代码
输出只有一个数字8,返回的实际上是一个文件内容的长度(类似word中的字数统计)。
然后用记事本打开juzi.txt文件,发现只有文件只有以下内容了:
[attach]5581[/attach]
发现原有的内容不见了。所以验证了:
Write本质上是创建一个新的文件
,文件原有的内容将被删除。
接下来,用write操作创建一个新文件,并写入内容。
代码:
f=open("51.txt",'w') #创建一个新文件51.txt,并且是写模式。
f.write("51学通信棒棒哒,\n") #\n为换行符,如果不加后面的内容将添加在同一行。
f.write("公众号也棒棒哒。")
复制代码
执行后,发现在当前目录创建了一个新文件叫51.txt。记事本打开后,发现有内容如下图:
[attach]5584[/attach]
2.3)文件的追加模式append
Append模式表示追加操作,也就是可以对一个已经存在的文件内容,从最后一行开始添加新的内容。
用'a'来表示append模式。写入文件内容的话依然要用write方法。
代码:
将2.2的代码改成'a'模式即可,其他不变。
f=open("51.txt",'a') #创建一个新文件51.txt,并且是append模式。
f.write("\n51学通信棒棒哒,\n") #\n为换行符,如果不加后面的内容将添加在同一行。
f.write("公众号也棒棒哒。")
复制代码
执行后,用记事本打开51.txt,发现内容变成了:
[attach]5585[/attach]
注意:append模式依然是不能读的,'a'只负责文件内容的追加。读只能用read。
2.4)文件的追加模式append
Append
欢迎光临 51学通信论坛2017新版 (http://bbs.51xuetongxin.com/)
Powered by Discuz! X3