Python 文件操作

前言

文件的读写在软件开发中也会经常用到,Python 对文件的支持也很强大,所以今天讲讲如何用 Python 来操作文件。

打开/关闭

open

打开文件很简单,只需要执行:

1

open('file_name', 'r')

第一个参数是文件路径,第二个参数是权限(如不指定权限,则默认为 r)。

权限说明:

访问模式

说明

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

w

打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

ab

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

w+

打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

rwa 是指对文本文件的操作。 rbwbab 是指对二进制文件的操作。

r+w+ 的区别在于如果 r+ 对应的文件不存在,则会报错,而 w+ 会创建这个文件。

close

打开完文件后,一般都要进行关闭,这是一种良好的编程习惯。

12

f = open('g:/3.txt','r')f.close()

File 对象

常用属性

一个文件被打开后,你有一个 file 对象,你可以得到有关该文件的各种信息。 以下是和 file 对象相关的所有属性的列表:

属性

描述

file.closed

返回true如果文件已被关闭,否则返回false。

file.mode

返回被打开文件的访问模式。

file.name

返回文件的名称。

file.softspace

如果用print输出后,必须跟一个空格符,则返回false。否则返回true。

123456789

#!/usr/bin/python# -*- coding: UTF-8 -*- # 打开一个文件fo = open("foo.txt", "wb")print "文件名: ", fo.nameprint "是否已关闭 : ", fo.closedprint "访问模式 : ", fo.modeprint "末尾是否强制加空格 : ", fo.softspace

输出结果:

文件名:  foo.txt
是否已关闭 :  False
访问模式 :  wb
末尾是否强制加空格 :  0

read

read() 方法从一个打开的文件中读取一个字符串。需要重点注意的是,Python 字符串可以是二进制数据,而不是仅仅是文字。 语法:

1

fileObject.read([count]);

在这里,被传递的参数是要从已打开文件中读取的字节计数。该方法从文件的开头开始读入,如果没有传入 count,它会尝试尽可能多地读取更多的内容,很可能是直到文件的末尾

例子: 这里我们用到以上创建的 foo.txt 文件。

123456789

#!/usr/bin/python# -*- coding: UTF-8 -*- # 打开一个文件fo = open("foo.txt", "r+")str = fo.read(10);print "读取的字符串是 : ", str# 关闭打开的文件fo.close()

以上实例输出结果:

读取的字符串是 :  www.runoob

关于文件读取还有两个方法:

  • readline() :一次读取一行。
  • readlines():读取每行内容到 List 中

write

write() 方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python 字符串可以是二进制数据,而不是仅仅是文字。 write() 方法不会在字符串的结尾添加换行符(\n): 语法:

1

fileObject.write(string);

在这里,被传递的参数是要写入到已打开文件的内容。 例子:

123456789

#!/usr/bin/python# -*- coding: UTF-8 -*- # 打开一个文件fo = open("foo.txt", "wb")fo.write( "www.runoob.com!\nVery good site!\n"); # 关闭打开的文件fo.close()

上述方法会创建foo.txt文件,并将收到的内容写入该文件,并最终关闭文件。如果你打开这个文件,将看到以下内容:

123

$ cat foo.txt www.runoob.com!Very good site!

文件定位

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

seek(offset [,from]) 方法改变当前文件的位置。Offset 变量表示要移动的字节数。From 变量指定开始移动字节的参考位置。 如果 from 被设为 0,这意味着将文件的开头作为移动字节的参考位置。如果设为 1,则使用当前的位置作为参考位置。如果它被设为 2,那么该文件的末尾将作为参考位置。

例子: 就用我们上面创建的文件 foo.txt

123456789101112131415161718

#!/usr/bin/python# -*- coding: UTF-8 -*- # 打开一个文件fo = open("foo.txt", "r+")str = fo.read(10);print "读取的字符串是 : ", str # 查找当前位置position = fo.tell();print "当前文件位置 : ", position # 把指针再次重新定位到文件开头position = fo.seek(0, 0);str = fo.read(10);print "重新读取字符串 : ", str# 关闭打开的文件fo.close()

以上实例输出结果:

读取的字符串是 :  www.runoob
当前文件位置 :  10
重新读取字符串 :  www.runoob

更多…

File 对象更多方法

os 模块

Python 的 os 模块提供了帮你执行文件操作的方法,几乎所有对文件的操作需求,都可以满足。 要使用这个模块,你必须要先导入它,然后才能调用相关的功能,调用只需要在程序上 import os 后就可以使用了。

rename

1

os.rename(current_file_name, new_file_name)

remove

1

os.remove(file_name)

mkdir

1

os.mkdir("newdir")

chdir

1

os.chdir("newdir")

可以用 chdir() 方法来改变当前的目录。chdir() 方法需要的一个参数是你想设成当前目录的目录名称。

rmdir

1

os.rmdir('dirname')

rmdir() 方法删除目录,目录名称以参数传递。在删除这个目录之前,它之中的所有内容应该先被清除。

更多…

OS 模块更多方法

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LeetCode 709 To Lower Case

    根据 ASCII 码判断并返回即可,大写 A - Z 为 065 - 090,小写 a - z 为 097 - 122,正好相隔 32,当为大写时,将 ASCI...

    一份执着✘
  • 巧用 MyBatis 构建树形结构

    一般的做法是查询出所有, 然后递归构建树形结构, 但其实可以巧用 MyBatis 在查询时就进行转换, 这用到了 MyBatis 的 resultMap 功能.

    一份执着✘
  • 前序遍历和中序遍历树构造二叉树

    一份执着✘
  • python打开文件的方式有哪些

    就可以打开一个文件进行操作。第二个参数为对文件的操作方式,’w’是写文件,已存在的同名文件会被清空,不存在则会创建一个;’r’是读取文件,不存在会报错;’a’是...

    砸漏
  • 10.1 C文件有关的基本知识

    (1)程序文件。包括源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为.exe)等。这种文件的内容时程序代码。

    C语言入门到精通
  • 【C语言基础】fopen函数使用

    r代表read的简写,+代表可读可写,w代表write,b代表bit二进制位,t代表text r 打开只读文件,该文件必须存在 r+ 打开可读可写的文件,该文件...

    程序员互动联盟
  • 《linux c编程指南》学习手记4

    7.1 文件系统简介 7.1.1 文件 文件类型:普通文件、目录文件、链接文件、设备文件、管道文件 文件权限:r w x 访问权限:文件所有者、文件所有者同组用...

    用户1154259
  • python文件打开的几种访问模式

    于小勇
  • python用爬虫下载网易云指定歌曲

    爬虫三大库分别是-------Requests、Lxml、BeautifulSoup

    织幻妖
  • 如何学python 第十九课 文件操作

    今天我们来说说文件操作。文件操作在程序编写里有着举足轻重的作用。文件操作,主要包含文件的输入和输出。学会了文件操作,就可以写出更符合实际需求的脚本。 我会先介绍...

    用户1631416

扫码关注云+社区

领取腾讯云代金券