python_文件操作代码实例

  """提示:代码中的内容均被注释,请参考,切勿照搬"""

1
#文件的打开和关闭 2 ''' 3 文件对象 = open('文件名','使用方式') 4 rt:读取一个txt文件 5 wt: 只写打开一个txt文件,(如果没有该文件则新建该文件)会覆盖原有内容 6 at:打开一个txt文件,并从文件指针位置追加写内容(文件指针默认在末尾) 7 文件操作错误属于:I/O异常 8 通常的异常: 9 try: 10 f = open('a.txt','wt') 11 except Exception as e: 12 print(e) 13 ''' 14 #文件的写操作 15 # 函数: 文件对象.write(s)其中s是待写入文件的字符串{文件对象需要时可写入的对象} 16 ''' 17 try: 18 fobj = open('anc.txt','wt') #wt:可写入操作方式/at为在原有的文件内容追加写入 19 fobj.write('\nmore') #写函数 20 fobj.close() 21 22 except Exception as err: 23 print(err) 24 25 结果:anc文件保存至当前目录下,并写入“[换行]more” 26 ''' 27 #案例:学生信息储存 28 ''' 29 name = 'wanzi' 30 gender = '男' 31 age = 23 32 try: 33 f = open('students.txt','wt') 34 while True: 35 #s = Student(i) 36 #if s: 37 f.write("namegenderge") 38 ans = input("continue(Y/y):") 39 if ans != 'Y' and ans != 'y': 40 break 41 i = i+1 42 f.close() 43 44 except Exception as e: 45 print(e) 46 47 ''' 48 #读文件操作 文件对象.read(n) //返回全部字符串或者n字节字符 49 ''' 50 def writeFile(): #写文件操作 51 f = open('abc.txt','wt') 52 f.write("Hello world\nI am Code_boy\nMirror_") #三行数据(两个\n) 53 f.close() 54 55 def readFile(): #读文件操作 56 f = open('abc.txt','rt') 57 sread = f.read() #文件内容读取 [如果read(n)有值,则读取n个字符,为空则读取全部] 58 print(sread) #将读取的内容打印输出 59 f.close() 60 61 try: 62 writeFile() #调用写文件函数,写入文件 63 readFile() #调用读文件函数,读出(打印)文件内容 64 except Exception as e: 65 print(e) 66 67 '''''' 68 结果: 69 Hello world 70 I am Code_boy 71 Mirror_ 72 ''' 73 #读文件操作 文件对象.readline() //返回一行字符串(读取连续的字符串,遇到\n或文件末尾结束) 74 ''' 75 def writeFile(): 76 f = open('readline.txt','wt') 77 f.write('Hello\nworld') 78 f.close() 79 80 def readlineFile(): 81 f = open('readline.txt','rt') 82 sreadline = f.readline() #读取readline文件(只读一行) 83 print(sreadline,'len=',len(sreadline)) 84 sreadline = f.readline() 85 print(sreadline, 'len=', len(sreadline)) 86 sreadline = f.readline() 87 print(sreadline, 'len=', len(sreadline)) 88 89 f.close() 90 try: 91 writeFile() 92 readlineFile() 93 except Exception as e: 94 print(e) 95 96 结果: 97 Hello #readline中的文件内容: Hello\nworld 结合readline的功能,在读取一行的数据 98 len= 6 # ‘Hello\n’ >>>> 共计6个字节(换行是因为读取了\n) 99 world len= 5 #如上类说明 100 len= 0 #文件指针已到达末尾,无法继续读出数据故 len = 0 101 102 ''' 103 # .readline()可以使用循环的方式(判断是否读取为空)来读取全部,一般都是使用读单行内容 104 #但是! .readlines(){加了一个‘s'}就可以直接读取全部数据: 105 ''' 106 def writeFile(): 107 f = open('readline.txt','wt') 108 f.write('Hello\nworld') 109 f.close() 110 111 def readlinesFile(): 112 f = open('readline.txt','rt') 113 sreadlines = f.readlines() #读取readlines文件(读全部行)并以list形式返回 114 #因为是以列表格式返回,所以一般情况下会配合循环(for)从readlines()提取每一行循环打印输出 115 for i in range(len(sreadlines)): #1号:利用for输出 116 print(sreadlines[i],end='') 117 118 print(sreadlines) #读全部内容,并且每一行用'\n'(显示)隔开 #2号:直接输出 119 f.close() 120 121 try: 122 writeFile() 123 readlinesFile() 124 except Exception as error: 125 print(error) 126 127 1号结果: 128 Hello 129 world 130 2号结果: 131 ['Hello\n', 'world'] #>>>也就是readlinese()读取数据的储存(list)形式 132 ''' 133 #读取文件中的学生信息 134 ''' 135 f = open('student1.txt','rt') 136 while True: 137 138 name = f.readline().strip('\n')# *.strip()>>用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。 139 if name == '': 140 break 141 gender = f.readline().strip('\n') 142 age = f.readline().strip('\n') 143 f.close() 144 print(name,gender,age) 145 ''' 146 147 #文件编码 148 ''' 149 #GBK编码:中文字符包含简体和繁体字符,每个字符仅能存储简体中文字符 汉字占二字节 150 #*UTF-8编码:全球通用的编码(默认使用)汉字占三字节 151 #文件打开时,可以指定用encoding参数指定编码例如: 152 # f = open('x.txt','wt',encoding = 'utf-8') 153 # 文件编码直接决定了文件的空间大小 154 ''' 155 #案例:UTF-8文件编码 156 ''' 157 def writeFile(): 158 f = open('utf.txt','wt',encoding = 'utf-8') 159 f.write('Hello I am 王宇阳') 160 f.close() 161 162 def readFile(): 163 f = open('utf.txt','rt',encoding='utf-8') 164 sreadlines = f.readlines() 165 for i in sreadlines: 166 print(i) 167 f.close() 168 try: 169 writeFile() 170 readFile() 171 except Exception as error: 172 print(error) 173 174 # 结果: Hello I am 王宇阳 175 ''' 176 177 #文件指针(文件结束标志:EOF)...文件对象.tell()[返回一个整数,整数则是指针的位置] 178 ''' 179 f = open('zz.txt','wt',encoding='utf-8') 180 print(f.tell()) #指针位置:0 181 f.write('abcdef 你好') 182 print(f.tell()) #指针位置:13 183 f.close() 184 f = open('zz.txt','rt',encoding='utf-8') 185 f.tell() #文件指针归零 186 s = f.read(3) 187 print(s,f.tell()) #输出read读取内容并返回指针位置。读取大小和指针位置相符 188 f.close() 189 #结果: 190 0 191 13 192 abc 3 193 ''' 194 #操作指针...文件对象.seek(offset[,whence]) 195 # offset:开始的偏移量,代表着需要偏移的字节数 196 # whence:[可选]默认值为‘0’,给offset参数一个定义,表示从那个位置开始偏移,0:文件开头 1:文件当前位置 2:文件末尾 197 #----注意,只有 “rt+ wt+ at+” 的打开方式可以调整指针,其他的打开方式不支持指针操作 198 ''' 199 def writeFile(): 200 f = open('zz1.txt','wt+',encoding='utf-8') 201 print(f.tell()) #返回初始指针位置 >>> 0 202 f.write('123') #写入3字节内容 203 print(f.tell()) #返回当前(写入文件后的)指针位置 204 f.seek(2,0) #指针从开头位置偏移2字节即:1 2 . 3(点的位置) 205 print(f.tell()) #返回指针位置>>>2 206 f.write('abc') #从当前指针位置写入‘abc’(覆盖了‘3’) 207 print(f.tell()) #返回指针位置>>>5 208 f.close() 209 210 def readFlie(): 211 f = open('zz1.txt','rt+',encoding='utf-8') 212 r = f.read() 213 print(r) 214 f.close() 215 216 writeFile() 217 readFlie() 218 #结果: 219 0 220 3 221 2 222 5 223 12abc 224 ''' 225 #二进制文件 226 #打开方式:rb wb ab rb+ wb+ ab+ 227 ''' 228 实践中总结: 229 1' list内容写入文件在需要专成str格式,应为列表格式文件不接受或者采用 (f.a) 的样式;(案例综合:教材管理95-101行) 230 '''

 

转载于:https://www.cnblogs.com/wangyuyang1016/p/10035324.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570115.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nagios远程系统监测服务

nagios全部的服务大致可以分为3大种:第一种是“本地系统监测服务”,就是监测主机Nagios所在主机对自己本地的一些情况的监测,比如本地磁盘占用情况,本地CPU使用情况等等。第二种是“远程系统监测服务”,就是远程主机系…

Spring中@Async

在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring 3.x之后,…

Mysql不能停用

Timeout error occurred trying to start MySQL Daemon.Starting MySQL: [FAILED]

CentOs如何挂载硬盘

远程SSH登录上Centos服务器后,进行如下操作提醒:挂载操作会清空数据,请确认挂载盘无数据或者未使用第一步:列出所有磁盘 命令: ll /dev/disk/by-path 提示:如果无法确认数据盘设备名称,请使…

挂载

df -Th 查看磁盘挂载情况 ls /dev/sdx* fdisk -l 查看分区情况 fdisk /dev/sdb 分区mnpw uuid:设备的唯一号 blkidUUID"0a59654a-6f2c-4bc1-bbaf-df844e60e2e3" UUID"fe8c9dd4-571c-40a4-837a-a4ab6e4ae7e转载于:https://www.cnblogs.com/finddata/p/10041496.h…

一周冲刺计划2//第一天

第二次一周冲刺计划 2018.12.1 今天开展了小组间的站立会议,四个人仔细分析了第一次冲刺计划中软件的不足,对其的不足之处进行了深刻的反省和分析,并做出相应的修改。首先做出UI界面,对界面进行修改。明天对代码进行修改。转载于:…

linux版的navicat提示丢失scilexer.dll

这是由于SELinux阻止了scilexer.dll加载 ,只要解除阻止就可以了。命令解除:如果SELinux是处于强制安全模式时需要做getenforce令SELinux处于容许模式setenforce 0chcon -t textrel_shlib_t scilexer.dll的路径

AWS EC2实例Ubuntu系统设置root用户密码并使用root/ubuntu用户登录

参考链接:http://www.wangchao.info/1137.html 注意:链接中写的简化了,其中重启服务的命令似乎不太适用,可能是不通用,我下面描述的方式亲测可行,如有其他疑问请留言; https://blog.csdn.net/p…

最全的纯净系统下载地址

http://msdn.itellyou.cn/?langzh-cn

坑题

题目描述 小姐姐想要配 n 把钥匙,她走过开锁铺问老板价钱,老板是这么说的: 小姐姐想知道完成配n把钥匙的任务最少需要花费多少钱 输入描述: 题目有多组测试数据。第一行输入一个整数T(组数少于100组),表示测…

windows 下架设svn服务器

一、准备工作1、获取 Subversion 服务器程序 到官方网站(http://www.collab.net/downloads/subversion )下载最新的服务器安装程序。目前最新的是1.7.7版本. 2、获取 TortoiseSVN 客户端程序从官方网站 http://tortoisesvn.net/downloads 获取最新的 To…

最简单的nginx教程 - 如何把一个web应用部署到nginx上

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日…

Linux下tomcat的配置

1、安装JDK文件双击jdk-6u33-linux-x64.bin,以以终端方式运行,安装在opt文件夹下在root用户 下,首先添加执行权限代码 chmod x jdk-6u29-linux-i586-rpm.bin 然后执行 ./jdk-6u29-linux-i586-rpm.bin 2.将tomcat解压出来,放在…

修理牧场(哈夫曼树 )

农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L​i​​个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是L​i​​的总和。 但是农夫自己没有锯子,请人锯…

修改FTP服务器端口后无法访问

如果将FTP服务器原先的端口21修改成其他的端口号,那么访问FTP服务器的方式只能是主动访问如果是用浏览器,那么设置如下:打开浏览器,找到“菜单栏”——“工具”——“Internet 选项” ——“高级”,会看到“使用被动FT…

Median(二分+二分)

Median http://poj.org/problem?id3579 Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 11225 Accepted: 4016Description Given N numbers, X1, X2, ... , XN, let us calculate the difference of every pair of numbers: ∣Xi - Xj∣ (1 ≤ i < j …

VNCServer在Linux下设置

1.检查vnc客户端和服务器是否已经安装: [rootcentos ~]$ rpm -q vnc-server package vnc-server is not installed 说明没有安装 运行yum install vnc-server进行安装 vnc-server-4.0-8.1 说明安装已经安装了 只是没开启服务而已 2. 将用户名称加入到配置…

Judy alpha 第七天

SCRUM 今天 debugger 部分由 Yu Xing 继续完成断点功能,由 Zhiqi Lin 开始实现查看变量功能。项目整体打包测试仍有困难,VS Code extension 的文档质量不佳,大家感到难以调试。成员昨日进展今日任务Zibo Wang协助打包、追踪开发进度协助打包、…

c++教程下载

孙鑫C视频教程 rmvb格式 全20CD完整版http://bbs.topsage.com/dispbbs.asp?boardID121&ID156290C视频教程 边用边学Visual C 6 (ASF格式)http://bbs.topsage.com/dispbbs.asp?boardID121&ID177500中山大学蔡培兴 C语言视频教程 全51讲 精品推荐 http://bbs.topsage.c…

Phaser3让超级玛丽实现轻跳、高跳及加上对应的跳跃声音

mario jumper在线测试地址&#xff1a;http://www.ifiero.com/uploads/phaserjs3/jumper/ 空格键&#xff1a;轻按&#xff1a;跳低 &#xff0c;长按&#xff1a;跳高键盘&#xff1a;--> 向右 , <-- 向左 请确保已打开电脑的音乐开关 var config {type: Phaser.AUTO,w…