python学习 文件操作

(一)文件读写
• Python 内置了读写文件的函数,用法和 C 是兼容的。
• 操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操
作系统打开一个文件对象(又称文件描述符),然后,通过操作系统提供的接
口从这个文件对象操作;

文件读写
思考文件读写的过程:
1. 打开文件
2. 向文件中写入内容;
3. 关闭文件

f = open(‘/root/hello’)

如果文件不存在, open() 函数就会抛出一个 IOError 的错误,并且给出错误码和详细的信息告诉你文件不存在;

f.read()

如果文件打开成功,接下来,调用 read() 方法可以一次读取文件的全部内容;

f.close()

文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源。

思考:
read()会一次性读取文件的全部内容,如果文件有 10G,内存就
爆了。怎么解决?

• 如果文件很小, read() 一次性读取最方便;
• 如果不能确定文件大小,反复调用 read(size)
• 比较保险;如果是配置文件,调用 readlines()

e:

f=open('/etc/passwd')
print f
print f.readline()
print f.readline()
print f.readlines()
/usr/bin/python2.7 /home/kiosk/Desktop/linux/day06/文件操作自己.py
<open file '/etc/passwd', mode 'r' at 0x7f3b4cb1b6f0>
root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

['daemon:x:2:2:daemon:/sbin:/sbin/nologin\n', 'adm:x:3:4:adm:/var/adm:/sbin/nologin\n', 'lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin\n', 'sync:x:5:0:sync:/sbin:/bin/sync\n', 'shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown\n', 'halt:x:7:0:halt:/sbin:/sbin/halt\n', 'mail:x:8:12:mail:/var/spool/mail:/sbin/nologin\n', 'operator:x:11:0:operator:/root:/sbin/nologin\n', 'games:x:12:100:games:/usr/games:/sbin/nologin\n', 'ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin\n', 'nobody:x:99:99:Nobody:/:/sbin/nologin\n', 'avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin\n', 'systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin\n', 'systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin\n', 'dbus:x:81:81:System message bus:/:/sbin/nologin\n', 'polkitd:x:997:995:User for polkitd:/:/sbin/nologin\n', 'tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin\n', 'unbound:x:996:993:Unbound DNS resolver:/etc/unbound:/sbin/nologin\n', 'colord:x:995:992:User for colord:/var/lib/colord:/sbin/nologin\n', 'usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin\n', 'geoclue:x:994:991:User for geoclue:/var/lib/geoclue:/sbin/nologin\n', 'saslauth:x:993:76:Saslauthd user:/run/saslauthd:/sbin/nologin\n', 'libstoragemgmt:x:992:989:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin\n', 'abrt:x:173:173::/etc/abrt:/sbin/nologin\n', 'setroubleshoot:x:991:988::/var/lib/setroubleshoot:/sbin/nologin\n', 'rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin\n', 'rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin\n', 'chrony:x:990:987::/var/lib/chrony:/sbin/nologin\n', 'radvd:x:75:75:radvd user:/:/sbin/nologin\n', 'qemu:x:107:107:qemu user:/:/sbin/nologin\n', 'rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin\n', 'nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin\n', 'pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin\n', 'gdm:x:42:42::/var/lib/gdm:/sbin/nologin\n', 'gnome-initial-setup:x:989:984::/run/gnome-initial-setup/:/sbin/nologin\n', 'avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin\n', 'postfix:x:89:89::/var/spool/postfix:/sbin/nologin\n', 'sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin\n', 'ntp:x:38:38::/etc/ntp:/sbin/nologin\n', 'tcpdump:x:72:72::/:/sbin/nologin\n', 'kiosk:x:1000:1000:kiosk:/home/kiosk:/bin/bash\n', 'apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin\n', 'dhcpd:x:177:177:DHCP server:/:/sbin/nologin\n', 'tommy:x:2013:2013::/home/tommy:/bin/bash\n', 'natasha:x:2014:2014::/home/natasha:/bin/bash\n', 'harry:x:2015:2015::/home/harry:/bin/bash\n', 'named:x:25:25:Named:/var/named:/sbin/nologin\n', 'admin:x:2016:2016::/home/admin:/bin/bash\n']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值