4.1 读写文件
1读文件
f=open('1.txt','r')
text=f.readlines()
print(text)
f.close()
2. 写文件
f=open('1.txt','w')
f.write('hello')
f.close()
if __name__=='__main__': filename=input('please input the name of file:') f=open(filename,'w') while 1: context=input("please input context:('EOF' will close file): ") if context=="EOF": f.close() # exit(1) break else: f.write(context) f.write('\n')please input the name of file:1
4.2 文件方法
常用方法:
readline() 一行一行的读取
readlines() 整个文件每一行作为一个元素,一个元素是一个字符串,整个是一个列表
next()下一行
read()把整个内容都读成一个字符串
write()写入的是如字符串
writelines()参数是列表,比如列表,它会迭代帮你写入文
文件属性:
f.name
f.closed
f.endoding
f.mode r w a b
f=open('1.log',encoding=ENCODING) print(f.name) print(f.mode) print(f.readlines()) print(f.readline()) print(f.closed) f.close()
with 方法
with open('1.log',r,'encoding=ENCODING') as f: print(f.read())
codecs 使用alt+enter 导入模块
with codecs.open('1.log','r',encoding=ENCODING) as f: print (f.read())
4.3 Python2 的乱码问题
1.添加为encoding utf-8 #_*_coding:utf-8 _*_
2. s= u"你好”
3. 解码成uft-8 s.decode('tuf-8')
python2 转码的过程:
源码编码-->unicode 编码--》目的编码
在解码的时候,方法1:
m='中文’
print(m.encode('utf-8') )报错
s.decode('utf-8').encode('gbk')
犯法2:
import sys
reload(sys)
print(sys.getdefaultencoding())
sys.setdefaultencoding('utf-8')
print(sys.getdefaultencoding())
Python 3 默认utf-8
4.4 Python对passwd文件进行排序
import codecs file='1.log' sortfile='sortpasswd.txt' filecontext=[] sortuid=[] with codecs.open(sortfile,'wb') as fsort: with codecs.open(file,'r',encoding='utf-8') as f: filecontext += f.readlines()#取内容 for line in filecontext: sortuid.append(int(line.split(":")[2]))#将第三列元素依次追加到sortuid 列表中。 sortuid.sort()#排序 for uid in sortuid : for line in filecontext: if str(uid)==line.split(':')[2]: print(line) fsort.write(line.encoding('utf-8'))#line.encoding('utf-8')把字符串转换成byte。