博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python File(文件)方法
阅读量:6756 次
发布时间:2019-06-26

本文共 1924 字,大约阅读时间需要 6 分钟。

今天开始第二篇,前面讲的内容是邮件发送,这里和前面没有任何关系。只是我小项目优化时候,用到了file操作,这里做下笔记。?

内容参考:

###Flie相关方法 file对象使用open函数来创建,首先我们来列举下file对象的常用函数:

方法 描述
file.close() 文件关闭,关闭之后,我们无法再对文件进行读写操作。
file.flush() 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
file.fileno() 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
file.isatty() 如果文件连接到一个终端设备返回Ture,否则返回False
file.next() 返回文件下一行。
file.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有。
file.readline([size]) 读取一整行,包括”\n“字符。
file.readlines([size]) 读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。
file.seek(offset[whence]) 设置文件当前位置。
file.tell() 返回文件当前位置。
file.truncate([size]) 截取文件,截取的字节通过size指定,默认为当前文件位置。
file.write(str) 将字符串写入文件,没有返回值。
file.writelines(sequence) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

###File案例

####读取文本内容

import os# 文件路径path = '/Users/****/Desktop/testfile.txt'# 打开文件document = open(path)# 查看文本路径,名称print document.name# 读取文件内容context = document.read()# 打印内容print context# 关闭当前文本document.close()复制代码

####写入文本内容

import os# 文件路径path = '/Users/****/Desktop/testfile.txt'# 打开文件 写入权限document = open(path, 'w+')# 写入文件内容context = 'This is my text!'document.write(context)# 关闭当前文本document.close()复制代码

####write后直接读取 通过上面的方法,我们已经可以实现基本的读取和写入了,但是在刚刚写入内容后,直接read文件输出无法查看到我们输入的内容,是因为指针已经在内容末尾了。接下来通过两种方式解决:

  • 先close文件,再open后再读取
  • 可以设置指针回到文件最初后再read 第一种方式我们不需要代码演示了,现在来看下第二种情况:
import ospath = '/Users/****/Desktop/testfile.txt'document = open(path, 'w+')context = 'Hello World!'document.write(context)# 查看当前指针的位置print document.tell()# 指针回到最初位置document.seek(os.SEEK_SET)# 获取文本内容context = document.read()print context# 最后关闭,要记得哦document.close()复制代码

###其他注意事项 为了保证在出错的情况下也能关闭文件,可以使用try...finally实现:

try:    f = open('path', 'r')    print f.read()finally:    if f:        f.close()复制代码

显然上面的方式写起来会比较麻烦,还好python引入了with语句来自动帮我们调用**close()**方法:

with open('path', 'r') as f:    print f.read()复制代码

上面代码为markdown下直接敲入的,有的可能没有验证,可能出现关键字书写错误,如果直接拷贝出现错误,欢迎留言,谢谢!!!?

转载于:https://juejin.im/post/5cf8a2d3e51d4556f76e8059

你可能感兴趣的文章
python小白之np功能快速查
查看>>
Authorization Bypass in RSA NetWitness
查看>>
把ISO文件当作光盘挂载
查看>>
C#下Emgucv的配置
查看>>
你未必了解的DNS
查看>>
pycharm的放大和缩小字体的显示 和ubunt的截圖工具使用 ubuntu上安装qq微信等工具...
查看>>
【Java基础】sun.misc.BASE64和Java 8 java.util.Base64区别
查看>>
响应式开发的思路和断点的选择
查看>>
使用PL/SQL连接Oracle时报错ORA-12541: TNS: 无监听程序
查看>>
Mac011--DbWrench Database安装
查看>>
[原]Flash研究(一)——本地通讯
查看>>
bootStrap table 和 JS 开发过程中遇到问题汇总
查看>>
【小知识点】input输入框在安卓以及IOS手机中光标及字体不居中解决方法
查看>>
VB 设置循环,以及弹出messageBox
查看>>
linux清理内存
查看>>
得到一个范围的随机数函数
查看>>
经典算法-链表(golang)
查看>>
leetcode — search-a-2d-matrix
查看>>
魔板 bfs() 预处理,记录每种状态。然后状态置换,(重点要用到全排列的hash记录状态)...
查看>>
构建之法课后作业第一次作业(15个题选一个)
查看>>