基本介紹:os模塊提供了非常豐富的方法用來處理文件和目錄,os模塊提供了多數操作系統的功能介面函數,根據不同的平台進行相應的操作。
入門測試:
使用os模塊的system方法調出linux命令:
In [1]: import os #導入os模塊
In [2]: os.system('ls')
anaconda-ks.cfg
epel-release-7-5.noarch.rpm
ipython-4.1.2
ipython-4.1.2.tar.gz
pip-8.1.2
pip-8.1.2.tar.gz#md5=.gz
Out[2]: 0
In [3]: a=os.system('ls') ##得到的是執行的命令的返回值,並不是執行結果
anaconda-ks.cfg
epel-release-7-5.noarch.rpm
ipython-4.1.2
ipython-4.1.2.tar.gz
pip-8.1.2
pip-8.1.2.tar.gz#md5=.gz
In [4]: a #執行ls命令的返回值,成功,為0
Out[4]: 0
In [5]: b=os.popen('ls').readlines() #將得到的結果直接賦值給b列表
In [6]: b #ls執行結果輸出到內存,再全部讀取賦值給b列表
Out[6]:
['anaconda-ks.cfg\n',
'epel-release-7-5.noarch.rpm\n',
'ipython-4.1.2\n',
'ipython-4.1.2.tar.gz\n',
'pip-8.1.2\n',
'pip-8.1.2.tar.gz#md5=.gz\n']
代碼說明及拓展:
os.remove 刪除文件
os.rename 重命名文件
os.walk 生成目錄樹下的所有文件名
os.chdir 改變目錄
os.listdir 列出指定目錄的文件
os.getcwd 取得當前工作目錄
os.chmod 改變目錄許可權
os.path.getsize 返迴文件大小
os.path.exists 是否存在
os.path.isabs 是否為絕對路徑
os.path.isdir 是否為目錄
os.path.isfile 是否為文件
2. python 執行linux命令
Python 可以通過 subprocess 模塊調用 Linux 命令。下面是幾個例子:
1.執行一個簡單的命令,例如ls命令,可以使用subprocess.run()方法:
import subprocess
result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
print(result.stdout.decode())
2.執行一個需要輸入的命令,例如sudo命令,可以使用subprocess.Popen()方法:
import subprocesssudo_password = 'mypassword'
command = 'sudo ls -l'
# 構建一個 Popen 對象來執行進程
p = subprocess.Popen(['sudo', '-S'] + command.split(), stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True)
# 向進程輸入密碼
sudo_prompt = p.communicate(sudo_password + ' ')[1]
# 輸出進程的結果
print(sudo_prompt)
在python中調用linux時常見的錯誤包括:
找不到命令或文件:如果您在執行命令時遇到此錯誤,那麼您需要檢查命令的路徑和文件名是否正確,並且確保您有執行該命令的許可權。
許可權不足:如果您在執行命令時遇到此錯誤,那麼您需要確保您有執行該命令的許可權,並且您的 Python 程序以足夠的許可權運行。
輸出重定向錯誤:如果您在執行命令時將輸出重定向到文件或者管道中,那麼您需要確保輸出文件或管道已經正確創建,並且您有足夠的許可權寫入數據。
為了避免出現錯誤,建議在編寫 Python 程序時,對命令進行封裝,以確保其安全性、可靠性和可維護性。
3. 什麼是Python
Python是一種跨平台的計算機程序設計語言。以下是關於Python的詳細介紹:
起源與用途:Python最初是作為ABC語言的替代品而設計的,它提供了高效的高級數據結構,並支持簡單有效的面向對象編程。Python是一種面向對象的動態類型語言,最初被設計用於編寫自動化腳本。隨著版本的不斷更新和語言新功能的添加,Python越來越多地被用於獨立的、大型項目的開發。
語言特性:
優點:
綜上所述,Python是一種功能強大、易於學習和使用的跨平台計算機程序設計語言,廣泛應用於自動化腳本編寫、大型項目開發等多個領域。