读取文件
fileobject=open('b.txt')
result=fileobject.read()
print(result)
fileobject.close()
测试结果如下图所示:
写入文件:
fileobject=open('c.txt',mode='w')
fileobject.write('hello,world.您好')
fileobject.flush() #清空缓冲区
fileobject.close()
print('写入成功...')
fileobject=open('c.txt')
result=fileobject.read()
print(result)
fileobject.close()
测试结果如下图所示:
使用上下文管理器读取文件
#context manager 上下文管理器 with
with open('b.txt','r') as f:
result =f.read()
print(result)
测试结果如下图所示:
一行及多行的读取:
#读取一行
#context manager 上下文管理器 with
with open('b.txt','r') as f:
result =f.readline()
print(result)
print('-------------------------')
#读取多行
#context manager 上下文管理器 with
with open('b.txt','r') as f:
result =f.readlines()
print(result)
测试结果如下图所示:
f.readlines()是一次性读完所有的行,存到内存中就关闭f ,缺点是一次读完比较耗内存,对于大文件不适用
#一行一行输出
with open('b.txt','r') as f:
#enumerate 枚举,集合
for i,line in enumerate(f.readlines()):
print(str(i+1),'->',line)
测试结果如下图所示:
#一行一行输出
with open('b.txt','r') as f:
#enumerate 枚举,集合
for line in f:
print(line)
f是一次读一行,在循环中是没有关闭 这种缺点就是在读取的使用占用此文本,别人无法操作此文本
测试结果如下图所示:
从一个文件读取数据并写入另一个文件
with open('b.txt') as b:
with open('f.txt','w') as f:
for line in b.readlines():
f.write(line)
with open('f.txt','r') as f:
#enumerate 枚举,集合
for line in f:
print(line)
如果没有f.txt文件,则创建,w表示覆盖原有的文本
测试结果如下图所示:
寻找文本里面的位置,可以在下载时候使用
fileobject=open('b.txt','a')
print('当前位置:'+str(fileobject.tell()) )
fileobject.seek(fileobject.tell()+1)
fileobject.write('胶水')
fileobject.flush()
fileobject.close()
测试结果如下图所示:
读取csv文件
import csv
with open('a.csv', 'r') as csvfile:
spamreader = csv.reader(csvfile)
for row in spamreader:
print (row)
测试结果如下图所示:
向csv文件中写入数据
import csv
with open('myfile.csv','w') as f:
writer=csv.writer(f)
writer.writerows( ['1','a','30'] )
l=[['2','b','30'],['3','ww','30']]
writer.writerows(l)
import csv
with open('a.csv', 'r') as csvfile:
spamreader = csv.reader(csvfile)
for row in spamreader:
print (row)
测试结果如下图所示:
输出的时候发现每一行都会有空格,这是可以在open()方法里面加入一个参数newline=’’
import csv
with open('myfile.csv','w',newline='') as f:
writer=csv.writer(f)
writer.writerows( ['1','a','30'] )
l=[['2','b','30'],['3','ww','30']]
writer.writerows(l)
import csv
with open('myfile.csv', 'r') as csvfile:
spamreader = csv.reader(csvfile)
for row in spamreader:
print (row)
测试结果如下图所示:
自己创建一个csv,这个csv用|来分割
with open('b.csv','r') as csvfile:
spamreader = csv.reader(csvfile,delimiter='-')
for row in spamreader:
print(row)
测试结果如下图所示:
方言的定义及使用
#定义一个方言
print(csv.list_dialects())
#注册新方言
csv.register_dialect('zydialect',delimiter='-')
print(csv.list_dialects())
#使用一个定义的方言
with open('b.csv','r') as csvfile:
spamreader=csv.reader(csvfile,dialect='zydialect')
for row in spamreader:
print(row)
测试结果如下图所示: