# cp /etc/passwd /tmp/
>>> f = open('/tmp/password') -----默认r模式,文件不存在则报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/password'
>>> f = open('/tmp/passwd')
>>> data = f.
f.buffer f.encoding f.isatty( f.newlines f.readlines( f.truncate(
f.close( f.errors f.line_buffering f.read( f.seek( f.writable(
f.closed f.fileno( f.mode f.readable( f.seekable( f.write(
f.detach( f.flush( f.name f.readline( f.tell( f.writelines(
>>> data = f.read()
>>> data
>>> data = f.read() 文件指针已到结尾,再读取将为空串-----指针没有回头草
>>> data
''
>>> f.close()
>>> f = open('/tmp/passwd')
>>> data = f.read()
>>> data
>>> f.read(4)---读取4字节
'root'
>>> f.read(6)---继续往后读6字节
':x:0:0'
>>> f.readline()读到换行符\n结束 ----类型是 str 字符类型
>>> f.readlines()--# 把每一行数据读出来放到列表中
':root:/root:/bin/bash\n'
>>> data = f.readlines()
>>> type(data)
<class 'list'>
>>> data
###############最常用的读取文件的方法#################
f = open('/tmp/passwd')
for line in f:
print(line, end='')
f.close()
##############################
f = open('图片地址', 'rb') # 打开非文本文件要加参数b
f.read(4096)
f.close()
[root@room9pc01 ~]# eog me1.png
打开图片
*************文本也可以用rb的方式打开*******
#一个英文字符正好占一个字节,就用英文字符本身去显示
但是一个汉子再utf9编码中占3字节,没有办法把一个字节表示成字符,所以就用16进制数表示
# cat /tmp/a.txt
hello一月份
>>> f = open('/tmp/a.txt','rb')
>>> f.read()
b'hello\xe4\xb8\x80\xe6\x9c\x88\xe4\xbb\xbd\n'
>>> s1 = b'\xe4\xb8\x80'
>>> s1
b'\xe4\xb8\x80'
>>> s1.decode()
'一'
f.close()
>>> s2 = '月'
>>> s2.encode()
b'\xe6\x9c\x88'
*******************************************
##################################
f = open('/tmp/myfile', 'w') # 'w'打开文件,如果文件不存在则创建
f.write('hello world!\n')
f.flush() # 立即将缓存中的数据同步到磁盘
f.writelines(['2nd line.\n', 'new line.\n'])
f.close() # 关闭文件的时候,数据保存到磁盘
##############################
with语句结束时,自动关闭文件
with open('/tmp/passwd') as f:
print(f.readline())
#########################
移动指针的位置以及查看指针的位置
--f = open('/tmp/passwd', 'rb') ---一定要rb
f = open('/tmp/passwd')
f.tell() # 查看文件指针的位置
f.readline()
f.tell()
f.seek(0, 0) # 第一个数字是偏移量,第2位是数字是相对位置。
# 相对位置0表示开头,1表示当前,2表示结尾
f.seek(-5,2) #左为负 右为正
f.tell()
f.close()
网友评论