200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python打开dat文件_科学网—Python: 文件的打开 读写和关闭 - 刘洋洋的博文

python打开dat文件_科学网—Python: 文件的打开 读写和关闭 - 刘洋洋的博文

时间:2022-07-13 18:39:58

相关推荐

python打开dat文件_科学网—Python: 文件的打开 读写和关闭 - 刘洋洋的博文

文件打开,读写和关闭的顺序:

打开文件;# 打开后才能进行读写

读文件或写文件;

文件关闭。# Python会缓存写入的数据,如果程序异常崩溃,数据就不能写入到文件当中。安全起见,文件用完后要主动关闭文件。

文件的打开

file_obj=open(filename, mode='r', buffering=-1,..)

filename是文件名(或路径),为强制参数,其他参数是可选的。

mode表示模式,为可选参数,默认值为r,即read(读)。

buffering表示是否需要缓冲,为可选参数,默认值为-1,表示使用系统默认的缓冲区大小。(0代表不缓冲,>=1的值表示缓冲一行或指定缓冲区大小)。

用help(open)查看其他参数。退出help()的方法:q。

>>> f1 = open ('test1.txt') # 从test1.txt中读数据,使用系统默认的缓冲区大小。

>>> f2 = open ('test2.txt','w')

# 若test2.txt存在,则清空该文件内容,准备写入新内容;若该文件不存在,则新建文件test2.txt,准备写入新内容。

>>> f3 = open ('record.dat','wb',0)

# 写一个二进制文件record.dat,不缓冲。说明:Python中,只有二进制文件可以不使用缓冲,而文本文件必须要使用缓冲。

open函数的mode参数:

r - 读,文件必须存在。

w - 写,清空文件内容或新建一个文件。

a - 追加,在文件尾部加内容。

r+ 等同于 r+w,可不清空原内容

w+ 等同于 = w+r

a+ 等同于 = a+r

二进制文件的读、写、追加:

rb - 读, rb+ = rb+w

wb - 写, wb+ = wb+r

ab - 追加, ab+ = ab+r

文件相关函数

open()函数的返回值 -

1. open()函数返回一个文件(file)对象。

2. 文件对象可迭代,因此可遍历其中的每一个子项。

3. 有关闭和读写文件相关的方法(即跟对象有关的函数)。

对象名.方法名()

- f.read(), f.write(), f.readline(), f.readlines(), f.writelines()

- f.close()

- f.seek()

写文件 - f.write()

file_obj.write (str)

- 将一个字符串写入文件

传统写法(不推荐)

>>> f = open ('test.txt', 'w')

>>>f.write ('Hello, World!')

>>> f.close ()

with语句(推荐使用)# 执行后主动关闭文件句柄,因而在程序当中不需要另外写上f.close()关闭文件。

>>> with open ('test.txt', 'w') as f:

f.write ('Hello, World!')

读文件 - f.read()

file_obj.read(size) # 从文件中至多读出size字节数据,返回一个字符串

file_obj.read()# 将当前位置直到文件结束的数据全部读出,返回一个字符串

>>> with open ('/Users/Yangyang/Desktop/test.txt','r') as f:

... a = f.read(5) # 先读出5个字节

... b = f.read() # 再将余下的字节读出来

>>> a

'Hello'

>>> b

', World!'

读取一行数据 - f.readline()

读取多行数据 - f.readlines()

写入多行数据 - f.writelines()

>>> with open ('/Users/Yangyang/Desktop/test.dat') as f:

... ln = f.readlines()

... print (ln)

Output:

['我来到的地方n', '有着悠久的历史和古老的传说n', '有着朝圣者的荒漠古道和挺立于心中的神女雪峰n', '他们圣洁的祷告n', '使树木狂舞 流水欢歌n', '我听见一个灵魂在抽泣n']

# 返回结果是一个列表,n是换行符。Python在文件中读取行的时候并不删除换行符。

脚本示例:

将文件test.dat的字符串前加上序号1、2、3...后写到另一个文件stest.dat中。

文件指针指向我们需要的位置 - f.seek()

在读写文件的时候都有一个文件指针,数据从文件指针所在的位置开始读写。

file_obj.seek(offset, whence=0)

在文件中移动文件指针,从whence偏移offset个字节

offset - 偏移量

whence - 起始位置,默认值是0 (0 - 文件头部, 1 - 当前位置, 2 - 文件尾部)

f.seek(0,0) 或者f.seek(0) - 把文件指针移到文件开头

f.seek(1,50) - 把文件指针往后移动50个字节

脚本示例:

在stest.dat文件中追加字符串s = 'Poem by Mang Lin'.

- readlines产生错误结果:

- 通过writelines写入数据,此时文件指针已经在文件尾部,再用readlines读数据就会产生不正确的结果。

- readlines产生正确结果:

- 在writelines后添加一行 f.seek(0)

练习:

转载本文请联系原作者获取授权,同时请注明本文来自刘洋洋科学网博客。

链接地址:/blog-3031432-1060080.html

上一篇:Python: 异常处理try-except语句和with语句

下一篇:Python: 标准文件/标准输入输出

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。