python⽂件打开赋值为空_python⽂件的操作
f = open(‘student_msg‘, encoding=‘utf-8‘, mode=‘a+‘) # 打开⼀个⽂件,赋值给f
print(type(f), f) # f⽂件句柄是属于⼀个类叫,也是可迭代对象。(io ---> input and out)
print(dir(f)) # 打印这个类的所有属性和⽅法
>>
[‘_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‘, ‘reconfigure‘, ‘seek‘, ‘seekable‘, ‘tell‘, ‘truncate‘, ‘writable‘,
‘write‘, ‘write_through‘, ‘writelines‘]
print(f.dict) # f 这个实例化对象中的属性 {‘mode‘: ‘a+‘}
源码对其的解释定义
‘‘‘
========= ===============================================================
Character Meaning
‘r‘ open for reading (default) 默认只读
‘w‘ open for writing, truncating the file first ⾸先把⽂件截断(全删了)
‘x‘ create a new file and open it for writing
‘a‘ open for writing, appending to the end of the file if it exists 追加模式
‘b‘ binary mode ⼆进制模式,打开图⽚或者⾮⽂本格式时
‘t‘ text mode (default) 默认读取⽂本
‘+‘ open a disk file for updating (reading and writing) 可读可写
========= ===============================================================
writelines使用方法python‘‘‘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
⽂件的操作使⽤的频率还是很⾼,这⼏种⽅法很容易弄混,为了避免以后出现偏差,现在我把⼏种常⽤的⽅法整理透。⼀,.readline() 和 .readlines() ⽬的是浏览,查⽂件中的内容⽤什么模式。先看⽤六种⽅式执⾏的结果。
在register⽂件中有以下内容,看下分别执⾏这六种⽅式返回的结果
”’
这些是⽂件中的内容
dumingjun
mickle|male
”’
mode=‘r‘
with open(‘register‘, encoding=‘utf-8‘, mode=‘r‘) as f:
adline())
adlines())
>>运⾏结果:(⽂件中内容⽆变化)
‘‘‘
这些是⽂件中的内容
[‘dumingjun\n‘, ‘mickle|male‘]
‘‘‘
mode=‘r+‘
with open(‘register‘, encoding=‘utf-8‘, mode=‘r+‘) as f:
adline())
adlines())
>>运⾏结果:(⽂件中内容⽆变化)
‘‘‘
这些是⽂件中的内容 # 先读了⼀⾏
[‘dumingjun\n‘, ‘mickle|male‘] # 然后往下执⾏,把每⾏作为⼀个字符串放⼊列表这个容器中,换⾏符为\n ‘‘‘
mode=‘w‘
with open(‘register‘, encoding=‘utf-8‘, mode=‘w‘) as f:
adline())
adlines())
运⾏结果:(⽂件中已经没有内容了)
‘‘‘
Traceback (most recent call last):
adline())
io.UnsupportedOperation: not readable # 报错原因:’w‘模式是⽆法读的,只要看到’w‘,先把⽂件全清空‘‘‘
mode=‘w+‘
with open(‘register‘, encoding=‘utf-8‘, mode=‘w+‘) as f:
adline())
adlines())
运⾏结果:(⽂件内容已经为空)
‘‘‘
先清空,然后接下来执⾏了f.readline() 由于为空,所以返回了空的字符
[] # 接下来执⾏f.readlines(), 返回⼀个空列表
‘‘‘
mode=‘a‘
with open(‘register‘, encoding=‘utf-8‘, mode=‘a‘) as f:
adline())
adlines())
运⾏结果:(⽂件内容不变)
‘‘‘
Traceback (most recent call last):
adline())
io.UnsupportedOperation: not readable # 报错原因,’a‘模式只能add,增加,不可读,因为’a‘模式进去时光标⾃动放在⽂件的末尾。
‘‘‘
mode=‘a+‘
with open(‘register‘, encoding=‘utf-8‘, mode=‘a+‘) as f:
adline())
adlines())
运⾏结果:(⽂件内容不变)
‘‘‘
因为光标是放在最后,所以读取的内容为空
[] # 同理redlines()返回的是⼀个空列表。
‘‘‘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论