python中的open函数
分类: Python/Ruby
打开⼀个⽂件并向其写⼊内容
Python的open⽅法⽤来打开⼀个⽂件。第⼀个参数是⽂件的位置和⽂件名,第⼆个参数是读写模式。这⾥我们采⽤w模式,也就是写模式。在这种模式下,⽂件原有的内容将会被删除。
#to write
testFile = open('','w')
#error testFile.write(u'菜鸟写Python!')
#写⼊⼀个字符串
testFile.write('菜鸟写Python!')
#字符串元组
codeStr = ('<div>','<p>','完全没有必要啊!','
','
')
testFile.write('\n\n')
#将字符串元组按⾏写⼊⽂件
testFile.writelines(codeStr)
#关闭⽂件。
testFile.close()向⽂件添加内容
在open的时候制定'a'即为(append)模式,在这种模式下,⽂件的原有内容不会消失,新写⼊的内容会⾃动被添加到⽂件的末尾。
#to append
testFile = open('','a')
testFile.write('\n\n')
testFile.close()读⽂件内容
在open的时候制定'r'即为读取模式,使⽤
#to read
testFile = open('','r')
testStr = adline()
print testStr
testStr = ad()
print testStr
testFile.close()在⽂件中存储和恢复Python对象
使⽤Python的pickle模块,可以将Python对象直接存储在⽂件中,并且可以再以后需要的时候重新恢复到内容中。
testFile = open('','w')
#and import pickle
import pickle
testDict = {'name':'Chen Zhe','gender':'male'}
pickle.dump(testDict,testFile)
testFile.close()
testFile = open('','r')
print pickle.load(testFile)
testFile.close()⼆进制模式
调⽤open函数的时候,在模式的字符串中使⽤添加⼀个b即为⼆进制模式。
#binary mode
testFile = open('','wb')
#where wb means write and in binary
import struct
bytes = struct.pack('>i4sh',100,'string',250)
writelines在python中的用法testFile.write(bytes)
testFile.close()
读取⼆进制⽂件。
testFile = open('','rb')
data = ad()
values = struct.unpack('>i4sh',data)
print values1.open使⽤open打开⽂件后⼀定要记得调⽤⽂件对象的close()⽅法。⽐如可以⽤try/finally语句来确保最后能关闭⽂件。
file_object = open('')
try:
all_the_text = ad( )
finally:
file_object.close( )
注:不能把open语句放在try块⾥,因为当打开⽂件出现异常时,⽂件对象file_object⽆法执⾏close()⽅法。
2.读⽂件读⽂本⽂件
input = open('data', 'r')
#第⼆个参数默认为r
input = open('data')
读⼆进制⽂件
input = open('data', 'rb')
读取所有内容
file_object = open('')
try:
all_the_text = ad( )
finally:
file_object.close( )
读固定字节
file_object = open('abinfile', 'rb')
try:
while True:
chunk = ad(100)
if not chunk:
break
do_something_with(chunk)
finally:
file_object.close( )
读每⾏
list_of_all_the_lines = adlines( )
如果⽂件是⽂本⽂件,还可以直接遍历⽂件对象获取每⾏:
for line in file_object:
process line
3.写⽂件写⽂本⽂件
output = open('data', 'w')
写⼆进制⽂件
output = open('data', 'wb')
追加写⽂件
output = open('data', 'w ')
写数据
file_object = open('', 'w')
file_object.write(all_the_text)
file_object.close( )
写⼊多⾏
file_object.writelines(list_of_text_strings)
注意,调⽤writelines写⼊多⾏在性能上会⽐使⽤write⼀次性写⼊要⾼。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rU 或 Ua 以读⽅式打开, 同时提供通⽤换⾏符⽀持 (PEP 278)
w      以写⽅式打开 (必要时清空)
a      以追加模式打开 (从 EOF 开始, 必要时创建新⽂件)
r      以读写模式打开
w      以读写模式打开 (参见 w )
a      以读写模式打开 (参见 a )
rb      以⼆进制读模式打开
wb      以⼆进制写模式打开 (参见 w )
ab      以⼆进制追加模式打开 (参见 a )
rb      以⼆进制读写模式打开 (参见 r )
wb      以⼆进制读写模式打开 (参见 w )
ab      以⼆进制读写模式打开 (参见 a )
a.      Python 2.3 中新增

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。