博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第三周文件处理和函数------上
阅读量:7174 次
发布时间:2019-06-29

本文共 5648 字,大约阅读时间需要 18 分钟。

===========第一节文件的读写---文件写f=open(r'ppp.txt','wt',encoding='utf-8')print(f.writable())f.write("dfjjhdffdfdfdfdqqqqqqqqqqq\n")#自己换行\nf.write("222222222222\n")#自己换行\nf.close()#一般在window上面需要添加r,取消window路径的问题#rt 一般只写r代表省略了t,文本文件text#图片格式的就不需要编码.#编码和操作系统有关,windows上面是GBK# f=open(r'qq.txt','rt',encoding='utf-8')#写是覆盖f=open(r'ppp.txt','wt',encoding='utf-8')print(f.writable())f.write("dfjjhdffdfdfdfdqqqqqqqqqqq\n")#自己换行\nf.write("222222222222\n")#自己换行\nf.writelines(['t333t\n','kk4444kk\n']) #写多行f.close()#a 模式文件不存在则创建文件,文件存在则打开文件,把光标移动到文件末尾f=open(r'ppp.txt','at',encoding='utf-8')print(f.writable())f.write("4444444444444444\n")#自己换行\nf.write("55555555555\n")#自己换行\nf.writelines(['77777\n','888888\n']) #写多行f.close()-------------------一次读出所有文件f=open(r'ppp.txt','rt',encoding='utf-8')print(f.read())# 一次读出所有文件,仅仅适用于文件很小的情况f.close()-------------------readlines 一次读出放入列表f=open(r'ppp.txt','rt',encoding='utf-8')# print(f.read())# 一次读出所有文件,仅仅适用于文件很小的情况print(f.readlines())# 一次读出所有文件,仅仅适用于文件很小的情况f.close()['dfjjhdffdfdfdfdqqqqqqqqqqq\n', '222222222222\n', 't333t\n', 'kk4444kk\n', '4444444444444444\n', '55555555555\n', '77777\n', '888888\n']-----------------------f=open(r'ppp.txt','rt',encoding='utf-8')print(f.readline(),end='')#一行一行的读,多了一个换行符是print的end='',取消print的换行符print(f.readline(),end='')#一行一行的读,多了一个换行符是print的end='',取消print的换行符f.close()---------------------循环打印出文件内容:with open(r'ppp.txt','rt',encoding='utf-8') as  f:    while True:        if len(f.readline())==0: break        print(f.readline(),end='')------------------打印出所有内容,for循环		with open(r'ppp.txt','rt',encoding='utf-8') as  f:    for line in f:        print(line,end='')-----------------------------------------		--------------		with open(r'tt.txt','rb') as  f:   print(f.readline().decode('utf-8'))   ========================= 二进制写txtwith open(r'tt2.txt','wb') as  f:   print(f.write(('地方和环境').encode('utf-8')))   -------------二进制追加写with open(r'tt2.txt','ab') as  f:   print(f.write(  ('分担分担').encode('utf-8')  ) )==================第二节with open('tt2.txt','r',encoding='utf-8') as f:   print(type(f))  默认是读模式,读模式下不可以写.#一次读出所有文件的内容,第二次读取什么内容也无法读出,光标移动到了末尾,with open('tt2.txt','r',encoding='utf-8') as f:   print(f.read())   print(f.read())with open('tt2.txt','r',encoding='utf-8') as f:  print(f.readline())  #读一行    #去除print的默认换行符 with open('tt2.txt','r',encoding='utf-8') as f:   print(f.readline(),end='')   print(f.readline(),end='')  #读出所有行的内容,每行放入在一个列表 with open('tt2.txt','r',encoding='utf-8') as f:   print(f.readlines())   ====文件写模式很危险会清空文件  >清空with open('tt2.txt',mode='w',encoding='utf-8') as f:   pass   ===读出一个文件写入另一个文件,相当于CP功能.with open('tt2.txt',mode='r',encoding='utf-8') as r,\      open('tt3.txt',mode='w',encoding='utf-8') as w:   for i in r:      print(i)      w.write(i)   with open('tt2.txt',mode='r',encoding='utf-8') as r,\      open('tt3.txt',mode='w',encoding='utf-8') as w:   for i in r:      print(i)      w.write(i)      w.flush()#保证了写入的信息一定被刷新到了磁盘,因为系统有可能攒在内存里面隔一会写入         import sysprint(sys.argv) #获取参数#获取一个参数列表 文件名 和参数顺序# ['D:\\PycharmProjects\\wadsd\\day3\\文件.py', 'aa', 'bb']   import sysprint(sys.argv) #获取参数_,srcfile,destfile=sys.argv  #第一个参数不要第二三个参数解压.print(srcfile)print(destfile)      ######cp 命令模仿最终版###################两个encoding 的作用是一个是python文件的编码,一个是处理文件复制文件的编码#!/usr/bin/env python#encoding:utf-8import sysprint(sys.argv) #获取参数_,srcfile,destfile=sys.argvprint(srcfile)print(destfile)#获取一个参数列表 文件名 和参数顺序# ['D:\\PycharmProjects\\wadsd\\day3\\文件.py', 'aa', 'bb']with open(srcfile,mode='r',encoding='utf-8') as r,\      open(destfile,mode='w',encoding='utf-8') as w:   for i in r:      print(i)      w.write(i)      w.flush()#保证了写入的信息一定被刷新到了磁盘,因为系统有可能攒在内存里面隔一会写入	  	   ===================================第三节文件的修改--------模仿vim改文件#!/usr/bin/env python#encoding:utf-8import oswith open('tt2.txt',mode='r',encoding='utf-8') as r,open('.swaptt2.txt',mode='w',encoding='utf-8') as w:    for i in r:        #data=i.replace('e','ax is sb')        w.write(i.replace('e','ax is sb'))        w.flush()os.remove('tt2.txt')os.rename('.swaptt2.txt','tt2.txt')------------vim高效版本import oswith open('tt2.txt',mode='r',encoding='utf-8') as r,open('.swaptt2.txt',mode='w',encoding='utf-8') as w:    for line in r:        #data=i.replace('e','ax is sb')        if 'g' in line:            line=line.replace('g','ax is sb')        w.write(line)        w.flush()os.remove('tt2.txt')os.rename('.swaptt2.txt','tt2.txt')=======================第四节文件内光标的移动---只有这种情况是字符的情况读取,其他都是字节为单位with open('tt2.txt','r',encoding='utf-8') as  f:    print(f.read(3))with open('tt2.txt','rt',encoding='utf-8') as  f:    print(f.read(1))    f.seek(0,0) # 0  第一个表示开始的位置0代表文件的开头   第二个参数代表移动的位置 2,从第几个位置开始读,从那里后的几个位置    print(f.read())#f.seek移动的是字节不是字符,一个汉字3个字节.只有0模式能在txt模式下使用,2是文件的末尾.#txt模式下是能用0.#只有一种情况光标以字符为单位:文件以rt方式打开,read(3)# with open('c.txt','rt',encoding='utf-8') as f:#     # print(f.read(6))#     # print(f.tell())#     # f.seek(0,0)#     # print(f.read(6))##     # f.seek(6,0)#     f.seek(8,0)#     print(f.read())----到文件末尾,倒数三个字符.# with open('c.txt','rb') as f:#     # f.seek(-3,2)#     # print(f.tell())#     f.seek(0,2)-----------一个读取文件末尾的例子import timewith open(r'D:\PycharmProjects\wadsd\day3\tt3.txt','rb') as f:    f.seek(0,2)    while True:        line=f.readline()        if line:            print(line)        else:            time.sleep(1)===========第五节截断文件把文件从哪里到哪里保留下来w模式的写会清空文件,a模式才能截断import timewith open(r'D:\PycharmProjects\wadsd\day3\tt3.txt','a',encoding='utf-8') as f:   f.truncate(3)----------从第三个字符清空文件import timewith open(r'D:\PycharmProjects\wadsd\day3\tt3.txt','a',encoding='utf-8') as f:   f.truncate(3)

 

转载于:https://www.cnblogs.com/gaoyuechen/p/8081490.html

你可能感兴趣的文章
2018年总结
查看>>
34个漂亮的应用程序后台管理界面
查看>>
java JDK6的可变参数
查看>>
初入职场程序员的五大钻石法则
查看>>
Node.js学习笔记(一)概述
查看>>
split的3种方法
查看>>
忽略PNG透明区域的事件(AS/Flash)
查看>>
文本框只能输入正整数(大于0的整数)代码
查看>>
一步一个脚印学习WCF系列之WCF概要—WCF服务的创建与调用HelloWorld实例,通过配置文件方式(六)...
查看>>
只需简单一步,android自带的示例程序 BluetoothChat 变蓝牙串口助手
查看>>
thrift之TTransport层的内存缓存传输类TMemoryBuffer
查看>>
使用pull方式解析xml文件示例:
查看>>
学习jQuery的免费资源:电子书、视频、教程和博客
查看>>
找出数列中个数大于总数一半的元素(编程之美2.3)
查看>>
断路器(CircuitBreaker)设计模式
查看>>
SQL中利用DMV进行数据库性能分析
查看>>
讨论:程序员高手和菜鸟的区别是什么?
查看>>
SQL Server里的 ISNULL 与 NULLIF
查看>>
Linux Systemcall By INT 0x80、Llinux Kernel Debug Based On Sourcecode
查看>>
imageNamed 与 imageWithContentsOfFile的区别
查看>>