码迷,mamicode.com
首页 > 编程语言 > 详细

进阶第十八颗 Python对文件的操作

时间:2018-04-03 14:22:33      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:创建   路径   二进制格式   close   方法   readlines   .exe   一个   str   

在Windows中,我们可以很容易地创建、修改和删除文件。我们熟悉的文件类型也有很多:txt、mkv、mp3、docx...

在Python中,我们依旧可以执行创建、修改和删除文件的操作。下面一起来看:

 1、示例

我们可以先在python.exe所在目录,我的目录是C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32,新建一个txt文档,写入一些内容。

file=open("sample111.txt",r)
lines=file.readlines()
for line in lines:
    print(line)
file.close()

看一下执行的结果:

>>> import readline
11111111111

22222222222

33333333333

44444444444

55555555555

我的txt文档,文件名是sample111,后缀是txt。内容有5行。

2、分析一下

2.1 格式

打开文件,就要关闭文件。所以可以看到有open,最后就要加上close。

file=open(‘a‘,‘b‘)。其中a是一个包含文档路径的文件名;b是打开文件时附带的指令,具体见下表:

r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

如果只提供了路径和文档名,而未提供附带指令,则默认为‘r‘,也就是只读。

上述指令列表十分重要,比如‘w‘,会覆盖现有文件内容,所以使用时一定要当心!!!

3、使用open就要使用对应的close。编码规模小的时候没有问题,一旦编码行暴增会出现忘记关闭的情况,那有没有不需要使用close的办法呢。回答是肯定的。

>>> with open(sample111.txt) as f:
    for i in f:
        print(i)

        
11111111111

22222222222

33333333333

44444444444

55555555555

区别在于,在open之前输入了一个with,这样close就不需要我们手动执行。

4、以r模式打开的文档,可以有几种方法读取里面的内容,分别是readline()、readlines()和read()。大家看一下区别。

先看readline()。sample111.txt文档中有5行,使用readline只能读取第一行。

>>> file=open(sample111.txt,r)
>>> a=file.readline()
>>> print(a)
11111111111

>>> print(a)
11111111111

>>> file.close()

再看readlines()。一次性读取文档中所有内容,并把内容以列表的形式存储为一个可迭代对象。

>>> file=open(sample111.txt,r)
>>> a=file.readlines()
>>> print(a)
[11111111111\n, 22222222222\n, 33333333333\n, 44444444444\n, 55555555555]
>>> file.close()

最后看read()

>>> file=open(sample111.txt,r)
>>> a=file.read()
>>> print(a)
11111111111
22222222222
33333333333
44444444444
55555555555
>>> file.close()

 

进阶第十八颗 Python对文件的操作

标签:创建   路径   二进制格式   close   方法   readlines   .exe   一个   str   

原文地址:https://www.cnblogs.com/tuobeiwoniu/p/8707836.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!