首页 / PYTHON / python基础--文件的操作
python基础--文件的操作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python基础--文件的操作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4299字,纯文字阅读大概需要7分钟。
内容图文
![python基础--文件的操作](/upload/InfoBanner/zyjiaocheng/1139/a60075f0536d46ac8570de099fad1124.jpg)
什么1111
fef
光荣之路
#判断文件在不在
>>> import os.path #引入路径判断的包 #判断文件在不在用exists >>> os.path.exists("d:\\a.txt") #绝对路径True >>> os.path.exists(r"d:\a.txt") #文件路径写\\,或者\前面加rTrue >>> os.path.exists("a.txt") #相对路径False >>> >>> if os.path.exists("d:\\a.txt"): ... print("文件存在可以操作") ... 文件存在可以操作 >>> 绝对路径:从盘符开始完整的路径,, 例如:e:\test\test1\a.txt 相对路径:在当前的目录下,以它为根目录,使用相对路径进行查找,,例如:在e:\test\test1盘下执行py程序,程序里面使用了相对路径a.txt; 那么它对应的绝对路径: e:\test\test1\a.txt
>>> os.getcwd() #获取当前所在路径 ‘C:\\Users\\dell‘ >>>
>>> fp =open(r"d:\a.txt","r",encoding="utf-8") #打开文件,有三个常用的参数,fp是文件句柄 #open函数,如果没有写模式, #默认是r模式,也就是读模式 #没有写编码,那么就是gbk >>> fp #句柄:指向磁盘文件在内存或者磁盘上的位置指针 <_io.TextIOWrapper name=‘d:\\a.txt‘ mode=‘r‘ encoding=‘utf-8‘> >>> dir(fp) [‘_CHUNK_SIZE‘, ‘__class__‘, ‘__del__‘, ‘__delattr__‘, ‘__dict__‘, ‘__dir__‘, ‘__doc__‘, ‘__enter__‘, ‘__eq__‘, ‘__exit__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getstate__‘, ‘__gt__‘, ‘__hash__‘, ‘__init__‘, ‘__init_subclass__‘, ‘__iter__‘, ‘__le__‘, ‘__lt__‘, ‘__ne__‘, ‘__new__‘, ‘__next__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__setattr__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘_checkClosed‘, ‘_checkReadable‘, ‘_checkSeekable‘, ‘_checkWritable‘, ‘_finalizing‘, ‘buffer‘, ‘close‘, ‘closed‘, ‘detach‘, ‘encoding‘, ‘errors‘, ‘fileno‘, ‘flush‘, ‘isatty‘, ‘line_buffering‘, ‘mode‘, ‘name‘, ‘newlines‘, ‘read‘, ‘readable‘, ‘readline‘, ‘readlines‘, ‘seek‘, ‘seekable‘, ‘tell‘, ‘truncate‘, ‘writable‘, ‘write‘, ‘writelines‘] >>> fp.read() #read读取全部文件内容‘‘ >>> fp.seek(0,0) #上一步已经读取了文件,文件的游标会指到文件的最末尾,如果想再次读取文件内容需要用seek将文件游标返回到文件最开始的位置0 >>> fp.read() ‘1111\nfef\n光荣之路‘ >>> fp.close() #关闭文件
为什么一定要关闭文件?
- 文件不关闭,写入的内容太少,实际写的内容并不会立刻写到磁盘,其他文件操作可能会受限。
- 写入场景:一次写不多的内容,比如:100个字操作系统会把内容存在内存,不写入文件。
什么时候写入呢?
要等待写入的内容到一定量,64k才会写入。
fp.fluse() #立刻写入文件的方法
close之后,就会把所有待写入的内容保存到文件中
fp.read():读取文件的全部内容 >>> fp.readline() #readline每次读一行‘1111\n‘ >>> 数据量大:readline() 优点:省内存 缺点:速度慢 数据量不大:read()把数据读到内存, 优点:操作起来很快,速度快 缺点:占内存 >>> fp.seek(0,0) 0 >>> fp.read(1) #只读一个字‘什‘ >>> fp.tell() #tell告诉你文件游标所在位置,读取的是字节数 3 #我想指定读哪一行怎么办? >>> fp.seek(0,0) 0 >>> fp.readlines() #readlines()读取每一行放列表里 [‘什么1111\n‘, ‘fef\n‘, ‘光荣之路‘] >>> fp.seek(0,0) 0 >>> lines =fp.readlines() >>> lines[1] #然后在用坐标取‘fef\n‘ >>> lines[0] ‘什么1111\n‘ >>> 不允许使用readlines,请计算一个文件的行数 #遍历读所有内文件的内容的方式: >>> fp.seek(0,0) 0 >>> for line in fp: ... print(line,end="") ... 什么1111 fef 光荣之路>>> >>> fp.seek(0,0) 0 >>> count =0 >>> for line in fp: ... count +=1 ... >>> count 3 while实现: >>> count =0 >>> while fp.readline(): ... count+=1 ... >>> print(count) 5
>>> fp =open("d:\\a.txt","w",encoding="utf-8") >>> fp.write(1111) #写入文件内容必须是字符串,否则报错Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: write() argument must be str, not int >>> fp.write("123456") 6 >>> fp.flush() #用flush主动写入,或者close文件自动写入 >>> #插入
#思路:先读取要插入位置的前面部分,在读取要插入位置的后面部分,然后把三部分拼接写入
#实现: >>> fp = open("e:\\a.txt","r+",encoding="utf-8") >>> two_word=fp.read(2) >>> two_word ‘光荣‘ >>> last_two_word=fp.read(2) >>> last_two_word ‘之路‘ >>> fp.seek(0,0) 0 >>> fp.write(two_word+"gr"+last_two_word) 6 >>> fp.close() >>> #写入的模式 w+:清空原有内容后,进行读写的模式 r+:保留原有内容后,进行读写的模式 a+:保留原有内容后,进行读写的模式 且写入内容永远在文件的最后一行
原文:https://www.cnblogs.com/wenm1128/p/11622075.html
内容总结
以上是互联网集市为您收集整理的python基础--文件的操作全部内容,希望文章能够帮你解决python基础--文件的操作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。