文件读写

一 不同方式打开文件

1、读取文本文件可用:file=open(“文件路径和文件名”,“r”);打开文件之后,直接用read()方法读取数据:a.read();读完之后要关闭文件:a.close()

2、读取二进制文件:file=open(“文件路径和文件名”,“rb”),a.read(),a.close()

3、写入文本文件:file=open(“文件路径和文件名”,“w”),a.write(“12345”),a.close()

4、写入二进制文件:file=open(“文件路径和文件名”,“wb”),a.write(“12323”),a.close()

5、读取文件不支持UTF-8编码时,可进行转码:file = open("文件路径和文件名", "r",encode="gbk")

 

二 获取文件对象的属性

属性描述
file.closed 返回true如果文件已被关闭,否则返回false。
file.mode 返回被打开文件的访问模式。
file.name 返回文件的名称。
file.softspace 如果用print输出后,必须跟一个空格符,则返回false。否则返回true。

如下实例:

三 写入/读取文件的内容

写入:

file.write():写入数据到文件file中

读取:

file.read():表示一次读取文件的所有内容

file.readline():表示一次读取一行数据

file.readlines():表示一次读取全部内容,并按行返回list

四 关闭文件

  file.close():关闭打开的file文件

五 文件定位

tell():告诉你文件内的当前位置;换句话说,下一次的读写会发生在文件开头这么多字节之后。

seek(offset [,from]):改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。

如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。

如下列子:

 

六 文件重命名/删除

Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件。要使用这个模块,你必须先导入它,然后才可以调用相关的各种功能。

rename():方法需要两个参数,当前的文件名和新文件名,os.rename(current_file_name, new_file_name)

remove():提供一个参数,当前要删除文件的文件名,os.remove(file_name)

其他os的函数可参考另外一篇

注意:try....finally的使用和with.....as的使用

(1)with open('/path/to/file', 'r') as f: 
f.write('Hello, world!')
(2)try:
    f = open('/path/to/file', 'r')
    print(f.read())
finally:
    if f:
        f.close()
(2)(1)是相同的意思,一般使用文件读写最好使用with ....as语句


问1:到了这里就很好奇,文件open()后,为什么都要close()?
答:每次打开一个文件,都会占用磁盘的资源,
close()是为了释放资源。
如果不close(),那就要等到垃圾回收时,自动释放资源。垃圾回收的时机是不确定的,也无法控制的。
如果程序是一个命令,很快就执行完了,那么可能影响不大(注意:并不是说就保证没问题)。
但如果程序是一个服务,或是需要很长时间才能执行完,或者很大并发执行,就可能导致资源被耗尽,也有可能导致死锁
 
原文地址:https://www.cnblogs.com/cxx1/p/7099408.html