创建了一个空白文件,如图:
>>> f = open('text.txt','w') # 创建空白文件,文件名为“text”
>>> f.write('abc') #将abc写入文件
3 #3表示字符数
>>> f.close() #open必须要对应close,否则看不到写入字符
>>>
>>> f.read() #无法直接读取
Traceback (most recent call last):
File "", line 1, in
f.read()
ValueError: I/O operation on closed file.
>>>
>>> f = open('text.txt','r') #读取数据要用open('文件名','r')
>>> f.read()
'abc'
>>> help(f.read)
Help on built-in function read:
read(...) method of _io.TextIOWrapper instance
>>>
将text关闭后重新打开,输出字符是随着光标移动的
>>> f.close()
>>> f = open('text.txt','r')
>>> f.read(2)
'ab'
>>> f.read()
'c'
>>>
>>> f.tell() # tell,告诉你光标的位置
3
>>>
>>> f.seek(0,0) #seek表示重置光标位置,前面的0表示从第一个位置开始,后面的0表 示从首位开始
0
>>> f.seek(0,1) #1表示保持原来的不变
0
>>> f.seek(0,2) #2表示从末位开始
3
>>> f.read()
'abc'
>>>
>>> f = open('text.txt','a') #a表示添加
>>> f.write
>>> f.write('def')
3
>>> f.close()
>>>
多一个read的区别:
>>> f.read()
'123def'
>>> f = open('text.txt','r+')
>>> f.write('456')
3
>>> f.flush() #将缓存写入
>>> f.seek(0,0)
0
>>> f.read()
'456def'
>>> f.read()
'456def'
>>> f = open('text.txt','r+')
>>> f.read()
'456def'
>>> f.write('123')
3
>>> f.flush()
>>> f.seek(0,0)
0
>>> f.read()
'456def123'
>>>
注意:read不要读取特别大的文件
>>> f.readline() #readline读入某一行的内容
'456def123\n'
>>> f.readline()
'abc'
>>>
>>> f.seek(2,0)
2
>>> f.readline()
'6def123\n'
>>>
练习
fd=open('1.txt','w')
head='%10s%10s%10s\n'%('ID','name','age')
fd.write(head)
item='%10d%10s%10d'%(10002,'peng',20)
fd.write(item)
fd.close()
结果
比较两个文件的内容是否相同
def ab(sr1,sr2):
l = 0
for i,j in zip(sr1,sr2):
if i==j:
l +=1
continue
else:
break
if i!=j or len(sr1)!=len(sr2):
l=l+1
else:
return 0
fa=open('1.txt','r')
fb=open('2.txt','r')
fa1=fa.readlines()
fb1=fb.readlines()
fa.close()
fb.close()
l = 0
r = 0
for sr1,sr2 in zip(fa1,fb1):
l=ab(sr1,sr2)
if l==0:
r+=1
continue
else:
break
if sr1!=sr2 or len(fa1)!=len(fb1):
print("fa and fb is diff.")
else:
print("The same")
结果
===================== RESTART: C:/Python34/xuexi/hhs.py =====================
fa and fb is diff.
>>>