|
衍伸阅读:
一 对文件操作流程 - 打开文件,得到文件句柄并赋值给一个变量
- 通过句柄对文件进行操作
- 关闭文件
模式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文件再打开,那是笨办法)只需要想办法让文件的指针从尾部重新回到头部就可以了。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|