设为首页 收藏本站
查看: 1497|回复: 0

[经验分享] python 文件的输入输出

[复制链接]

尚未签到

发表于 2018-8-13 11:52:51 | 显示全部楼层 |阅读模式
  一:文件的输入:
  在前面python基础命令中,我们已经介绍过输入,在此举几个例子解释一下两者的区别
  raw_input()函数从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符):
  input()函数和 raw_input() 函数基本类似,但是 input 可以接收一个Python表达式作为输入,并将运算结果返回。
  两者的差异点在于input只能接受一个正确的python表达式
In [8]: a = input()  
ddd
  
---------------------------------------------------------------------------
  
NameError                                 Traceback (most recent call last)
  
<ipython-input-8-9b8a430d8199> in <module>()
  
----> 1 a = input()
  

  
<string> in <module>()
  

  
NameError: name 'ddd' is not defined
  

  
In [9]: b = raw_input()
  
dds
  

  
In [10]:
  二:文件处理的具体方法:
open 函数
  你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。
  新建文件haha,和执行操作的在同一个目录下
a = open("haha","r")   #打开haha文件并且只给他read权限  
print a.read()
输出:ewfevcsd模式描述r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。r+以读写的方式打开,如果文件不存在,直接报错,当写入内容的时候,文件从指针指向的地方继续写入rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。wb以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。w+打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。注:当我们写一个东西时,指针会停留在写的东西的最后一个字符,所以,当read时,即什么也读不到wb+以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。  注:以上模式在使用的时候一定要加"",其次,在read的时候,一定要注意指针的位置。
  
read()方法
  read()方法从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
a = open("haha","r")  
print a.read()
  
a = open("haha","r")  
a = a.read(7)              ####resd(数字表示从指针初始位置到你所加数字的位置)
  
print a
  haha sfesdsghbrtfhbred
  文件为输出:
sfesdsg  文件定位seek函数:修改指针位置
  file.tell()     #查看文件的指针位置
  file.seek(偏移量,选项)
  偏移量: >0.向右偏移量   <0 向左偏移
  选项: 0:代表指向文件开始   1:代表指向文件当前   2:代表指向文件最后
a = open("haha","w+")  
a.write("w+w+")
  
print a.tell()
  
a.seek(0,0)
  
print a.read()
  输出:
4  
w+w+
  在加seek前 指针停留在最后,所以什么也读不出
  flash()方法
  flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。
  一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。
  close,文件的关闭
file.close()   #关闭文件  
file.closed   #查看文件是否关闭
  文件的重命名和删除
  前提:倒入os模块
import os  
os.rename("haha","pipi")
  然后你看看文件名是不是就改了呢
remove()方法
  你可以用remove()方法删除文件,需要提供要删除的文件名作为参数。
  语法:
import os  
os.remove("ehhe")
mkdir()方法
import os  
os.mkdir("yaoyao")
  注:如果没有加绝对路径时,新建的目录和执行此语法的文件地址同级
chdir()方法:类似于linux的mv
  可以用chdir()方法来改变当前的目录。chdir()方法需要的一个参数是你想设成当前目录的目录名称。
  语法:
import os  
os.mkdir("/home/example")
  
os.chdir("/home/example")
  还有好多关于文件处理的方法,具体会整理在os模块
File对象的属性
  一个文件被打开后,你有一个file对象,你可以得到有关该文件的各种信息。
a = open("haha","w+")  
a.write("w+w+")
  
a.seek(0,0)
  
print  "文件名",a.name
  
print "文件是否关闭",a.closed
  
print "文件访问模式", a.mode
  输出:
文件名 haha  
文件是否关闭 False
  
文件访问模式 w+

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-551151-1-1.html 上篇帖子: python包管理器--pip 下篇帖子: python json requests request 模块
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表