Python File(文件)方法

今天开始第二篇,前面讲的内容是邮件发送,这里和前面没有任何关系。只是我小项目优化时候,用到了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 os
path = '/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下直接敲入的,有的可能没有验证,可能出现关键字书写错误,如果直接拷贝出现错误,欢迎留言,谢谢!!!🌺

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,969评论 19 139
  • 今天在火红的朝阳里迎来了假期的第一天,五一小长假,由于工作原因不能带孩子出去玩,这几天她爸爸也有事,早上奶奶早...
    飞越高空阅读 155评论 0 4
  • qqq123123123123
    小牛姑阅读 411评论 0 0
  • 《傲然独立》 《相守》 《星夜》 《秋天的颜色》 《向阳》 《家园》 《琴舞》 《窗外》 《轮回》
    张鹤凡阅读 319评论 6 6
  • Artists are people who create art. Although some of them ...
    Goston007阅读 380评论 0 2