Python--File及OS操作
Python–File及OS操作
1、File操作
Python使用open函式可以開啟一個檔案。
如使用open函式開啟"a.txt",開啟許可權是隻讀。使用該函式會返回一個物件,通過該物件可以呼叫一系列檔案操作的方法。
file=open("a.txt","r")
data=file.readline()
print(data)
整個open函式的引數如下:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
引數說明:
- file: 必需,檔案路徑(相對或者絕對路徑)。
- mode: 可選,檔案開啟模式
- buffering: 設定緩衝
- encoding: 一般使用utf8
- errors: 報錯級別
- newline: 區分換行符
- closefd: 傳入的file引數型別
- opener:
mode 引數
模式 | 描述 |
---|---|
t | 文字模式 (預設)。 |
x | 寫模式,新建一個檔案,如果該檔案已存在則會報錯。 |
b | 二進位制模式。 |
+ | 開啟一個檔案進行更新(可讀可寫)。 |
U | 通用換行模式(Python 3 不支援)。 |
r | 以只讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。 |
rb | 以二進位制格式開啟一個檔案用於只讀。檔案指標將會放在檔案的開頭。這是預設模式。一般用於非文字檔案如圖片等。 |
r+ | 開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。 |
rb+ | 以二進位制格式開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。一般用於非文字檔案如圖片等。 |
w | 開啟一個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。 |
wb | 以二進位制格式開啟一個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。一般用於非文字檔案如圖片等。 |
w+ | 開啟一個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。 |
wb+ | 以二進位制格式開啟一個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。一般用於非文字檔案如圖片等。 |
a | 開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。 |
ab | 以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。 |
a+ | 開啟一個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。 |
ab+ | 以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。 |
預設為文字模式,如果要以二進位制模式開啟,加上 b 。
file 物件
file 物件使用 open 函式來建立,下表列出了 file 物件常用的函式:
序號 | 方法及描述 |
---|---|
1 | file.close()關閉檔案。關閉後檔案不能再進行讀寫操作。 |
2 | file.flush()重新整理檔案內部緩衝,直接把內部緩衝區的資料立刻寫入檔案, 而不是被動的等待輸出緩衝區寫入。 |
3 | file.fileno()返回一個整型的檔案描述符(file descriptor FD 整型), 可以用在如os模組的read方法等一些底層操作上。 |
4 | file.isatty()如果檔案連線到一個終端裝置返回 True,否則返回 False。 |
5 | file.next()**Python 3 中的 File 物件不支援 next() 方法。**返回檔案下一行。 |
6 | [file.read(size])從檔案讀取指定的位元組數,如果未給定或為負則讀取所有。 |
7 | [file.readline(size])讀取整行,包括 “\n” 字元。 |
8 | [file.readlines(sizeint])讀取所有行並返回列表,若給定sizeint>0,返回總和大約為sizeint位元組的行, 實際讀取值可能比 sizeint 較大, 因為需要填充緩衝區。 |
9 | [file.seek(offset, whence])移動檔案讀取指標到指定位置 |
10 | file.tell()返回檔案當前位置。 |
11 | [file.truncate(size])從檔案的首行首字元開始截斷,截斷檔案為 size 個字元,無 size 表示從當前位置截斷;截斷之後後面的所有字元被刪除,其中 Widnows 系統下的換行代表2個字元大小。 |
12 | file.write(str)將字串寫入檔案,返回的是寫入的字元長度。 |
13 | file.writelines(sequence)向檔案寫入一個序列字串列表,如果需要換行則要自己加入每行的換行符。 |
使用with …as開啟也許更方便。
with open("a.txt","a+",encoding="utf-8") as f:
f.write("你好")
f.seek(10)
data=f.read(10)
print(data)
f.close()
2、Sys操作
Sys模組用於對當前系統及命令列進行部分操作。
如下:
>>> import sys
>>> sys.stdout.write("hi sys stdout") #標準輸出,附加位元組數
hi sys stdout13
sys 的 stdin,stdout 和 stderr 屬性。
內建函式print的file引數就預設是stdout,也可以更改成其他file物件,那麼將直接輸入到檔案中。
with open("a.txt","a+",encoding="utf-8") as f:
print("檔案輸入",file=f)
f.close()
3、OS操作
OS模組提供了與操作介面對接的的函式。
>>> import os
>>> os.getcwd() #獲取當前工作路徑
'D:\\vsCode\\One'
>>> os.chdir("..") #改變工作路徑
>>> os.getcwd()
'D:\\vsCode'
>>>os.open( "foo.txt", os.O_RDWR|os.O_CREAT ) #建立檔案
>>> os.mkdir("ZPy3") #建立目錄
>>> os.makedirs("Zpy3/o/a") #遞迴的建立目錄
>>> os.removedirs("Zpy3/o/a") #遞迴的刪除目錄
除此之外還有大量的os函式。
關於路徑操作也有對應的os.path模組。
>>> import os.path
>>> print(os.path.isfile(os.getcwd()))
False
相關文章
- VNC cent OS 7操作工具,VNC cent OS 7 操作工具下載!VNC
- Python OS模組操作檔案Python
- 資料夾操作庫os.path
- python3之os的基本操作Python
- python–模組之os操作檔案模組Python
- Firefox OS App開發及部署FirefoxAPP
- nmap os探測使用方法及原理
- solaris下檢視OS版本及Patch列表
- Golang 原始碼學習(一) —— os/file 檔案操作Golang原始碼
- Python中OS對目錄的操作以及引用Python
- Python科研武器庫 - 字串操作 - 路徑字串分割 os.path.split()、os.path.splitext()Python字串
- 鴻蒙OS架構及關鍵技術整理鴻蒙架構
- ElasticSearch 文件及操作Elasticsearch
- 切片操作及原理
- Git操作及使用Git
- ulimit操作及使用MIT
- MongoDB的常用Query操作及操作符MongoDB
- Symbian OS上的檔案操作和UNICODE轉換Unicode
- 列表及相關操作
- 字典及相關操作
- fdisk 操作及掛載
- AIX 常用操作及命令AI
- 安裝spark//python中os.path.abspath及os.path.join以及正態分佈PPFSparkPython
- mac os電腦安裝tomact環境及配置Mac
- ORACLE及OS相關監控指令碼 For AIX6.1Oracle指令碼AI
- 配置簡單的linux 的幾個操作步驟(Cent OS)Linux
- OS + hongmeng / harmony os / ArkTS
- Mybatis:CRUD操作及配置解析MyBatis
- ElasticSearch CURD Sense 及常用操作Elasticsearch
- Mac常用操作及快捷鍵Mac
- uC/OS-ii 學習步驟及書籍推薦
- python常用標準庫(os系統模組、shutil檔案操作模組)Python
- Redis 資料型別及操作Redis資料型別
- 堆的基本操作及堆排序排序
- JS的reduce使用及操作方式JS
- filebeat+ELK配置及常用操作
- Oracle 重置密碼及基本操作Oracle密碼
- logstash簡介及基本操作