網站首頁 編程語言 正文
1、讀寫文件
open()將會返回一個file對象,基本語法:
open(filename,mode)
ilename:是一個包含了訪問的文件名稱的路徑字符串
mode:決定了打開文件的模式:只讀,寫入,追加等,默認文件訪問模式為只讀?
不同模式打開文件的列表:
- r:以只讀的方式打開文件,文件的指針將會放在文件的開頭,為默認模式
- rb:以二進制格式打開一個文件用于只讀,文件指針會在文件的開頭
- r+:打開一個文件用于讀寫,文件指針將會在文件的開頭
- rb+:以二進制格式打開一個文件用于讀寫,文件指針會放在文件的開頭
- w:打開一個文件用于寫入,如果該文件已存在則將會覆蓋文件,如果不存在則創建新文件
- wb:以二進制打開一個文件用于寫入
- w+:打開一個文件用于讀寫
- wb+:以二進制格式打開一個文件用于讀寫,如果文件存在則覆蓋,如果不存在則創建新文件
- a:打開一個文件用于追加內容,如果文件已存在,文件指針會放在文件的結尾,如果不存在則創建新文件進行寫入
- ab:以二進制格式打開一個文件用于追加寫入
- a+:打開一個文件用于讀寫,如果該文件已存在,文件指針會放在結尾,文件打開時會是追加模式,該文件不存在則創建新文件
- ab+:以二進制格式打開一個文件用于追加。
>>> file = open('test1.py','w') ?#以寫模式打開文件
>>> file.write('hello python')
12
>>> file.flush() ?#刷新文件內容
>>> file.read() ? #文件不可讀
Traceback (most recent call last):
? File "<stdin>", line 1, in <module>
io.UnsupportedOperation: not readable
>>> file = open('test1.py','r') ?#以只讀打開文件
>>> file.readline() ?#讀取一行文件內容
'hello python\n'
>>> file.readline()
'hello python\n'
>>> file.readline()
''
>>> file.close() ? #關閉文件
2、文件對象的方法
f.read():讀取一個文件的內容
>>> f = open('/etc/passwd','r')>>> f.read(5) #指定字節數讀取 'root:'>>> f.read() #讀取文件全部內容
"root:x:0:0:root:/root:/bin/bash\nbin:x:1:1:bin:/bin:/sbin/nologin\ndaemon:x:2:2:daemon:/sbin:/sbin/nologin\nadm:x:3:4:adm:/var/adm:/sbin/nologin\nlp:x:4:7:lp:/var/spool/lpd:/sbin/nologin\nsync:x:5:0:sync:/sbin:/bin/sync\nshutdown:x:6:0:shutdown:/sbin:/sbin/shutdown\nhalt:x:7:0:halt:/sbin:/sbin/halt\nmail:x:8:12:mail:/var/spool/mail:/sbin/nologin\nuucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin\noperator:x:11:0:operator:/root:/sbin/nologin\ngames:x:12:100:games:/usr/games:/sbin/nologin\ngopher:x:13:30:gopher:/var/gopher:/sbin/nologin\nftp:x:14:50:FTP User:/var/ftp:/sbin/nologin\nnobody:x:99:99:Nobody:/:/sbin/nologin\ndbus:x:81:81:System message bus:/:/sbin/nologin\nvcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin\nabrt:x:173:173::/etc/abrt:/sbin/nologin\nhaldaemon:x:68:68:HAL daemon:/:/sbin/nologin\nntp:x:38:38::/etc/ntp:/sbin/nologin\nsaslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin\npostfix:x:89:89::/var/spool/postfix:/sbin/nologin\nsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin\ntcpdump:x:72:72::/:/sbin/nologin\nvmail:x:5000:5000::/home/vmail:/sbin/nologin\napache:x:48:48:Apache:/var/www:/sbin/nologin\nmysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash\nilanni:x:5001:5001::/home/ilanni:/bin/bash\ndovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin\ndovenull:x:498:499:Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologin\n"
>>> f.close()
f.readline():會從文件中讀取單獨的一行,換行符為“\n”,如果返回一個空字符串說明已經讀到最后一行
>>> f = open('/etc/passwd','r')
>>> f.readline() #讀取一行的內容
'root:x:0:0:root:/root:/bin/bash\n'
>>> f.readline()
'bin:x:1:1:bin:/bin:/sbin/nologin\n'
>>> f.readline()
'daemon:x:2:2:daemon:/sbin:/sbin/nologin\n'
>>> f.close()
f.readlines():將會以列表的形式返回該文件中包含的所有行
>>> f = open('/etc/passwd','r')
>>> f.readlines() #讀取所有行
['root:x:0:0:root:/root:/bin/bash\n', 'bin:x:1:1:bin:/bin:/sbin/nologin\n', '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', 'uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin\n', 'operator:x:11:0:operator:/root:/sbin/nologin\n', 'games:x:12:100:games:/usr/games:/sbin/nologin\n', 'gopher:x:13:30:gopher:/var/gopher:/sbin/nologin\n', 'ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin\n', 'nobody:x:99:99:Nobody:/:/sbin/nologin\n', 'dbus:x:81:81:System message bus:/:/sbin/nologin\n', 'vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin\n', 'abrt:x:173:173::/etc/abrt:/sbin/nologin\n', 'haldaemon:x:68:68:HAL daemon:/:/sbin/nologin\n', 'ntp:x:38:38::/etc/ntp:/sbin/nologin\n', 'saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/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', 'tcpdump:x:72:72::/:/sbin/nologin\n', 'vmail:x:5000:5000::/home/vmail:/sbin/nologin\n', 'apache:x:48:48:Apache:/var/www:/sbin/nologin\n', 'mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash\n', 'ilanni:x:5001:5001::/home/ilanni:/bin/bash\n', 'dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin\n', "dovenull:x:498:499:Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologin\n"]
>>> f.seek(0) #跳指針到開頭
0
>>> f.readlines(9) #指定參數讀取行
['root:x:0:0:root:/root:/bin/bash\n']
>>> f.readlines(9)
['bin:x:1:1:bin:/bin:/sbin/nologin\n']
>>> f.readlines(9)
['daemon:x:2:2:daemon:/sbin:/sbin/nologin\n']
>>> f.readlines(10)
['adm:x:3:4:adm:/var/adm:/sbin/nologin\n']
>>> f.readlines(1)
['lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin\n']
>>> f.readlines()
['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', 'uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin\n', 'operator:x:11:0:operator:/root:/sbin/nologin\n', 'games:x:12:100:games:/usr/games:/sbin/nologin\n', 'gopher:x:13:30:gopher:/var/gopher:/sbin/nologin\n', 'ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin\n', 'nobody:x:99:99:Nobody:/:/sbin/nologin\n', 'dbus:x:81:81:System message bus:/:/sbin/nologin\n', 'vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin\n', 'abrt:x:173:173::/etc/abrt:/sbin/nologin\n', 'haldaemon:x:68:68:HAL daemon:/:/sbin/nologin\n', 'ntp:x:38:38::/etc/ntp:/sbin/nologin\n', 'saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/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', 'tcpdump:x:72:72::/:/sbin/nologin\n', 'vmail:x:5000:5000::/home/vmail:/sbin/nologin\n', 'apache:x:48:48:Apache:/var/www:/sbin/nologin\n', 'mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash\n', 'ilanni:x:5001:5001::/home/ilanni:/bin/bash\n', 'dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin\n', "dovenull:x:498:499:Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologin\n"]
>>>
f.write():將內容寫入到文件中,然后返回寫入的字符數
>>> f = open('test2.py','w') #python學習交流群:309488165
>>> f.write('hello python') #寫入內容
12
>>> libex = 'hhhhhhhhhhhhhh'
>>> f.write(libex) #按變量寫入內容
14
>>> f.close() #關閉文件
>>>
[root@python day7]# cat test2.py #內容沒有換行符
hello pythonhhhhhhhhhhhhhh[root@python day7]#
f.tell():返回文件對象當前所處的位置,它是從文件開頭開始算起的字節數
>>> f = open('test2.py','r')
>>> f.tell() #指針當前位置
0
>>> f.readline() #讀取一行文件后
'hello pythonhhhhhhhhhhhhhh'
>>> f.tell() #指針移動26字節數處
26
>>> f.close() #關閉文件
f.seek():改變當前文件指針的位置,f.seek(offset,from_what)
from_what的值,如果是0表示開頭,如果是1表示當前位置,2表示文件的結尾:
seek(x,0):從文件首行首字符開始移動x個字符
seek(x,1):從當前為往后移動x個字符
seek(-x,2):從文件的結尾往前移動x個字符
from_what值默認為0,即文件開頭。
>>> f = open('test3.py','a+')
>>> f.readlines()
[]
>>> f.seek(0) #開頭
0
>>> f.readlines()
['aaa\n', 'bbb\n', 'ccc\n', 'ddd\n', 'eee\n']
>>> f.tell()
20
f.clise():關閉文件并釋放系統的資源。
>>> f = open('test3.py','r')
>>> f.readlines()
['aaa\n', 'bbb\n', 'ccc\n', 'ddd\n', 'eee\n']
>>> f.close() #關閉文件
原文鏈接:https://blog.csdn.net/aliYz/article/details/128824460
相關推薦
- 2022-03-06 css3溢出隱藏的方法_基礎教程
- 2022-09-08 C++實現Dijkstra算法的示例代碼_C 語言
- 2022-08-04 C#中Backgroundworker與Thread的區別_C#教程
- 2022-10-08 React-RouterV6+AntdV4實現Menu菜單路由跳轉的方法_React
- 2022-06-14 ASP.NET?Core?MVC中的布局(Layout)_基礎應用
- 2022-03-14 JasperReport報表導出PDF中文不顯示的問題
- 2022-07-26 注冊bean有多少種方式
- 2022-06-12 python下grpc與protobuf的編寫使用示例_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支