日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python安装os模块_python的os模块(ipython,文件,目录,权限,管理)

發布時間:2025/4/5 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python安装os模块_python的os模块(ipython,文件,目录,权限,管理) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是os模塊

os模塊提供了多數操作系統的功能接口函數。當os模塊被導入后,它會自適應于不同的操作系統平臺,根據不同的平臺進行相應的操作,在python編程時,經常和文件、目錄打交道,這時就離不了os模塊,本節內容將對os模塊提供的函數進行詳細的解讀

一、使用腳本自動安裝Python版本

要求:沒有安裝過Python3的系統

如果已經安裝過Python3,只能選擇一個不用的版本安裝

1、PyCharm連接Linux

2、os模塊執行shell命令

os.system()的作用:

執行shell命令

返回shell命令的返回值

命令的輸出會輸出到標準輸出

代碼演示:

os.system('cls')

編寫自動安裝Python的腳本

(1)實現步驟:

下載Python版本源碼

安裝Python需要的依賴庫

編譯安裝Python

(2)偽代碼:

1. 判斷用戶是不是root

2. 如果是,等待用戶輸入Python版本

3. 執行shell命令下載源碼包

4. 安裝依賴開發包

5. 編譯安裝Python

(3)腳本內容如下(基于Python2):

auto_install_python.py

# coding=utf-8

import os

# 判斷用戶是否是root用戶

if os.getuid() == 0:

pass

else:

print('當前用戶不是root用戶!')

SystemExit(1)

# 安裝Python依賴庫

cmd_module = 'yum -y install wget gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel'

res = os.system(cmd_module)

if res != 0:

print('Python依賴庫安裝失敗,請重新執行該腳本!')

SystemExit(1)

else:

print('Python依賴庫安裝成功!')

# 輸入python版本,下載Python源碼包到本地目錄

# weget url

version = raw_input('請輸入python版本:(3.6/3.8)')

if version == '3.6':

url = 'https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tgz'

else:

url = 'https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz'

cmd = 'wget ' + url

res = os.system(cmd)

if res != 0:

print('Python源碼包下載失敗!')

SystemExit(1)

else:

print('===============================>>>Python源碼包下載成功!')

# 解壓Python源碼包

# tar zxvf Python-3.8.2.tgz

if version == '3.6':

package_name = 'Python-3.6.10'

else:

package_name = 'Python-3.8.1'

res = os.system('tar zxvf ' + package_name + '.tgz')

if res != 0:

print('解壓失敗!')

SystemExit(1)

else:

print('=============<<解壓成功!>>===============')

# 必要的配置,否則出現錯誤:“make: *** [pybuilddir.txt] 錯誤1”

# export LANG=zh_CN.UTF-8

# export LANGUAGE=zhb_CN.UTF-8

cmd_export_lang = 'export LANG=zh_CN.UTF-8'

cmd_export_language = 'export LANGUAGE=zhb_CN.UTF-8'

res1 = os.system(cmd_export_lang)

res2 = os.system(cmd_export_language)

if res1 != 0 or res2 != 0:

print('配置失敗,請檢查解腳本后在運行!')

SystemExit(1)

# 切換Python目錄

os.chdir(package_name)

os.system('./configure --prefix=/usr/local/python3')

res = os.system('make && make install')

if res != 0:

print('源碼編譯失敗!')

SystemExit(1)

else:

print('=========<>==========')

# 修改用戶環境變量

os.system('echo "export PYTHON3=/usr/local/python3" >>~/.bash_profile')

os.system('echo "export PATH=$PYTHON3/bin:$PATH" >>~/.bash_profile')

os.system("source ~/.bash_profile")

os.system('cat ~/.bash_profile')

print('用戶環境變量已更改,請進行驗證!')

os.system('ln -s /usr/local/python3/bin/* /usr/local/bin')

os.system('python3 --version')

3、上傳到Linux并執行

Linux執行

[root@python ~]# cd /opt/

[root@python opt]# python test1.py

二、Python的os模塊shell

Python 的 os 模塊封裝了常見的文件和目錄操作,本文只列出部分常用的方法,更多的方法可以查看官方文檔。

下面是部分常見的用法:

方法

說明

os.mkdir

創建目錄

os.rmdir

刪除目錄

os.rename

重命名

os.remove

刪除文件

os.getcwd

獲取當前工作路徑

os.walk

遍歷目錄

os.path.join

連接目錄與文件名

os.path.split

分割文件名與目錄

os.path.abspath

獲取絕對路徑

os.path.dirname

獲取路徑

os.path.basename

獲取文件名或文件夾名

os.path.splitext

分離文件名與擴展名

os.path.isfile

判斷給出的路徑是否是一個文件

os.path.isdir

判斷給出的路徑是否是一個目錄

1、安裝ipython

[root@root ~]# pip3 install -i https://pypi.douban.com/simple/ ipython

啟動ipython

[root@root ~]# ipython

如果啟動不了使用:

python3 -m IPython --version

來查看ipython版本,如果看到版本信息,那么就可以使用python -m IPython 命令來啟動ipython

如果要使用ipython命令來啟動,可以在用戶目錄下的 .bash_profile中增加如下:

alias ipython="python3 -m IPython"

再次啟動ipython

python3 -m IPython --version

這樣就可以了

2、例子

后文的例子以下面的目錄結構為參考,工作目錄為 /Users/ethan/coding/python。

Users/ethan

└── coding

└── python

├── hello.py - 文件

└── web - 目錄

看看例子:

(1)os.path.abspath:獲取文件或目錄的絕對路徑

$ pwd

/Users/ethan/coding/python

$ python

>>> import os # 記得導入 os 模塊

>>> os.path.abspath('hello.py')

'/Users/ethan/coding/python/hello.py'

>>> os.path.abspath('web')

'/Users/ethan/coding/python/web'

>>> os.path.abspath('.') # 當前目錄的絕對路徑

'/Users/ethan/coding/python'

(2)os.path.dirname:獲取文件或文件夾的路徑

>>> os.path.dirname('/Users/ethan/coding/python/hello.py')

'/Users/ethan/coding/python'

>>> os.path.dirname('/Users/ethan/coding/python/')

'/Users/ethan/coding/python'

>>> os.path.dirname('/Users/ethan/coding/python')

'/Users/ethan/coding'

(3)os.path.basename:獲取文件名或文件夾名

>>> os.path.basename('/Users/ethan/coding/python/hello.py')

'hello.py'

>>> os.path.basename('/Users/ethan/coding/python/')

''

>>> os.path.basename('/Users/ethan/coding/python')

'python'

(4)os.path.splitext:分離文件名與擴展名

>>> os.path.splitext('/Users/ethan/coding/python/hello.py')

('/Users/ethan/coding/python/hello', '.py')

>>> os.path.splitext('/Users/ethan/coding/python')

('/Users/ethan/coding/python', '')

>>> os.path.splitext('/Users/ethan/coding/python/')

('/Users/ethan/coding/python/', '')

(5)os.path.split:分離目錄與文件名

>>> os.path.split('/Users/ethan/coding/python/hello.py')

('/Users/ethan/coding/python', 'hello.py')

>>> os.path.split('/Users/ethan/coding/python/')

('/Users/ethan/coding/python', '')

>>> os.path.split('/Users/ethan/coding/python')

('/Users/ethan/coding', 'python')

(6)os.path.isfile:是否是一個文件

os.path.isdir:是否是一個目錄

>>> os.path.isfile('/Users/ethan/coding/python/hello.py')

True

>>> os.path.isdir('/Users/ethan/coding/python/')

True

>>> os.path.isdir('/Users/ethan/coding/python')

True

>>> os.path.isdir('/Users/ethan/coding/python/hello.py')

False

(7)os.walk:遍歷目錄

os.walk 是遍歷目錄常用的模塊,它返回一個包含 3 個元素的元祖:(dirpath, dirnames, filenames)。dirpath 是以 string 字符串形式返回該目錄下所有的絕對路徑;dirnames 是以列表 list 形式返回每一個絕對路徑下的文件夾名字;filesnames 是以列表 list 形式返回該路徑下所有文件名字。

>>> for root, dirs, files in os.walk('/Users/ethan/coding'):

... print root

... print dirs

... print files

...

/Users/ethan/coding

['python']

[]

/Users/ethan/coding/python

['web2']

['hello.py']

/Users/ethan/coding/python/web2

[]

[]

3、os模塊打開文件

方法如下:

os.open(filename, flag, [,mode])

flag參數說明:

file # 要打開的文件

flags # 該參數可以是以下選項,多個使用 "|" 隔開:

os.O_RDONLY # 以只讀的方式打開

os.O_WRONLY # 以只寫的方式打開

os.O_RDWR # 以讀寫的方式打開

os.O_NONBLOCK # 打開時不阻塞

os.O_APPEND # 以追加的方式打開

os.O_CREAT # 創建并打開一個新文件

os.O_TRUNC # 打開一個文件并截斷它的長度為零(必須有寫權限)

os.O_EXCL # 如果指定的文件存在,返回錯誤

os.O_SHLOCK # 自動獲取共享鎖

os.O_EXLOCK # 自動獲取獨立鎖

os.O_DIRECT # 消除或減少緩存效果

os.O_FSYNC # 同步寫入

os.O_NOFOLLOW# 不追蹤軟鏈接

mode # 類似 chmod()。

4、os模塊對文件進行操作

常用方法如下:

# 讀取文件

os.read(fd, buffersize)

# 寫入文件

os.write(fd, string)

# 文件指針操作

os.lseek(fd, pos, how)

# 關閉文件

os.close(fd)

代碼演示:

文件創建和寫入

import os

# 打開文件

fd = os.open("abc.txt", os.O_RDWR | os.O_CREAT)

# 寫入字符串

str = "Hello Python!"

ret = os.write(fd, bytes(str, 'UTF-8'))

# 輸入返回值

print("寫入的位數為: ")

print(ret)

print("寫入成功")

# 關閉文件

os.close(fd)

print("關閉文件成功!!")

輸出結果如下:

寫入的位數為:

13

寫入成功

關閉文件成功!!

文件讀取

import os

# 打開文件

fd = os.open("abc.txt", os.O_RDWR)

# 讀取文本

ret = os.read(fd, 6)

print(ret)

# 關閉文件

os.close(fd)

print("關閉文件成功!!")

輸出結果如下:

b'Hello '

關閉文件成功!!

5、os模塊管理文件和目錄

常用方法如下:

os方法

說明

remove(path)

刪除文件

rename(old, new)

修改文件或者目錄名

getcwd()

獲取當前目錄

listdir(path)

返回當前目錄下所有文件組成的列表

mkdir(path [,mode])

創建目錄

makedirs(path [,mode])

創建多級目錄

rmdir(path)

刪除目錄(目錄必須為空目錄)

removedirs(path)

刪除多級目錄(目錄必須為空目錄)

代碼演示:

# coding=utf-8

import os

print(os.getcwd()) # pwd

print(os.listdir()) # ls

os.rename('abc.txt','test.txt') # mv abc.txt test.txt

os.remove('read.py') # rm -f abc.txt

os.mkdir('test') # mkdir dir1

os.makedirs('demo/abc') # mkdir -p dir2/dir22

os.rmdir('test') # 目錄必須為空

os.removedirs('demo') #目錄必須為空

6、os模塊管理文件權限

os方法

說明

access(path, mode)

判斷該文件權限:F_OK存在;
權限:R_OK,W_OK,X_OK

chmod(path, mode)

修改文件權限:0o755

chown(path, uid, gid)

更改文件所有者,如果不修改可以設置為 -1

代碼演示:

import os

# 測試路徑是否存在:os.F_OK

res = os.access('test.txt',os.F_OK)

print(res)

# 測試當前用戶對該文件是否有讀的權限

res = os.access('test.txt',os.R_OK)

print(res)

# 測試當前用戶對該文件是否有寫的權限

res = os.access('test.txt',os.W_OK)

print(res)

# 測試當前用戶對該文件是否有執行的權限

res = os.access('test.txt',os.X_OK)

print(res)

# 更改當前用戶的權限

os.chmod('test.txt',0o755)

# 更改文件的所有者

os.chown('test.txt', 1001, 1002)

執行前提,確保需要文件存在。

7、os.path模塊管理文件與路徑

(1)拆分路徑

os.path方法

說明

split

返回一個二元組,包含文件的路徑和文件名

dirname

返回文件的路徑

basename

返回文件名

splitext

返回一個去掉文件擴展名的部分和擴展名的二元組

代碼演示:

In [10]: os.getcwd()

Out[10]: '/opt/os_demo'

In [11]: os.listdir()

Out[11]: ['os_access.py', 'test.txt']

In [12]: path = '/opt/os_demo/test.txt'

In [13]: os.path.split(path)

Out[13]: ('/opt/os_demo', 'test.txt')

In [14]: os.path.dirname(path)

Out[14]: '/opt/os_demo'

In [15]: os.path.basename(path)

Out[15]: 'test.txt'

In [16]: os.path.splitext(path)

Out[16]: ('/opt/os_demo/test', '.txt')

(2)構建路徑

os.path方法

說明

expanduser

展開用戶的HOME目錄,如~,~oracle

abspath

得到文件或路徑的絕對路徑

join

根據不同的操作系統平臺,使用不同的路徑分隔符拼接路徑

isabs

檢查一個路徑是不是一個絕對路徑

代碼演示:

In [19]: os.path.expanduser('~')

Out[19]: '/root'

In [20]: os.path.expanduser('~oracle')

Out[20]: '/home/oracle'

In [21]: os.path.expanduser('~accp')

Out[21]: '/home/accp'

In [22]: os.path.expanduser('~acp')

Out[22]: '~acp'

In [23]: os.path.abspath('.')

Out[23]: '/opt/os_demo'

In [24]: os.path.abspath('..')

Out[24]: '/opt'

In [25]: os.path.join('/opt/os_demo','test.txt')

Out[25]: '/opt/os_demo/test.txt'

In [26]: os.path.isabs('/opt/os_demo/')

Out[26]: True

In [27]: os.path.isabs('.')

Out[27]: False

(3)獲取文件屬性

os.path

方法

os.path.getmtime(path)

返回最近文件修改時間

os.path.getctime(path)

返回文件 path 創建時間

os.path.getsize(path)

返回文件大小,如果文件不存在就返回錯誤

代碼演示:

In [33]: os.path.getatime(path)

Out[33]: 1587547270.7306058

In [34]: os.path.getmtime(path)

Out[34]: 1587547270.7306058

In [35]: os.path.getctime(path)

Out[35]: 1587548055.4721448

In [36]: os.path.getsize(path)

Out[36]: 0

(4)判斷文件類型

os.path方法

說明

os.path.isfile(path)

判斷路徑是否為文件

os.path.isdir(path)

判斷路徑是否為目錄

os.path.islink(path)

判斷路徑是否為鏈接

os.path.ismount(path)

判斷路徑是否為掛載點

代碼演示:

In [37]: os.path.isfile(path)

Out[37]: True

In [38]: os.path.isdir(path)

Out[38]: False

In [39]: os.path.islink(path)

Out[39]: False

In [40]: os.path.ismount(path)

Out[40]: False

8、os.walk遍歷目錄樹

os.walk0方法遍歷某個目錄及其子目錄,對于每一個目錄,walk()函數返回一 個三元組(dirpath, dirnames.filenames)。其中dirpath保存的是 當前目錄,dirnames是 當前目錄下的子目錄列表,filenames是 當前目錄下的文件列表。

# coding=utf-8

import os

for root, dirs, files in os .walk(".", topdown=False):

for name in files:

print (os.path.join(root, name))

for name in dirs:

print (os.path.join(root, name))

(1)在Linux用ipython中把/opt目錄遍歷一下

In [4]: for root, dirs, files in os .walk("/opt"):

...: print(root)

...: print()

...: for name in files:

...: print(os.path.join(root,name))

...: for dir in dirs:

...: print(os.path.join(root,dir))

...:

輸出結果如下:

/opt

/opt/rh

/opt/rh

os.walk()方法是一個簡單易用的文件、目錄遍歷器,可以幫助我們高效的處理文件、目錄方面的事情.

(2)打印最常用的10條Linux命令

步驟:

讀取~/.bash_history文件內容

將讀取到的內容格式化(去掉空行)

獲取指令:索引為0的元素

指令使用次數進行累加

去除重復的數據

[root@python opt]# vim find_cmd.py

# coding=utf-8

import os

from collections import Counter

count = Counter()

with open(os.path.expanduser('~/.bash_history')) as f:

for line in f:

cmd = line.strip().split()

if cmd:

count[cmd[0]] += 1

print(count.most_common(10))

輸出結果如下:

[root@python opt]# python3 find_cmd.py

[('ip', 8), ('cd', 8), ('systemctl', 7), ('ls', 6), ('vim', 5), ('ping', 3), ('tar', 3), ('vmware-install.pl', 3), ('rm', 3), ('sh', 2)]

總結

以上是生活随笔為你收集整理的python安装os模块_python的os模块(ipython,文件,目录,权限,管理)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本女人黄色片 | 色妞网| 免费的黄色小视频 | 涩涩97 | 屁屁影院第一页 | 青青草综合视频 | 亚洲三区视频 | 国产片淫乱18一级毛片动态图 | 动漫av网 | 人人做人人爽人人爱 | 日日撸夜夜操 | 免费观看高清在线 | 欧美成人一区在线观看 | 日韩黄色一级大片 | 国产精品区二区三区日本 | 国产a级淫片 | 美女视频黄色 | 99久久婷婷国产综合精品 | 国产黄色激情视频 | 又粗又猛又爽又黄少妇视频网站 | 成人福利社 | 九一精品一区 | 欧美综合一区二区三区 | 大肉大捧一进一出好爽动态图 | 久久久久久草 | 波多野结衣影院 | 久热热 | 青青草五月天 | 欧美在线激情 | 国产精品无码一区二区三区在线看 | 日韩人妻一区二区三区蜜桃 | 午夜激情在线 | 玩弄白嫩少妇xxxxx性 | 无码熟妇人妻av | 欧美成人综合一区 | 色呦呦网站入口 | 午夜免费片 | 精品国产午夜福利 | 中国丰满老妇xxxxx交性 | 国产v亚洲v天堂无码久久久 | 国产精品久久久久久久久久久久久久 | 麻豆视频二区 | 丁香婷婷久久久综合精品国产 | 亚洲国产图片 | 99视频在线看 | 奇米影视在线观看 | 涩色视频| 一级黄色大片免费看 | 金8天国av| 亚洲妇女无套内射精 | 亚洲欧洲精品视频 | 玖玖爱在线观看 | 殴美黄色大片 | 捆绑裸体绳奴bdsm亚洲 | 麻豆成人免费 | 久久人人爽人人爽人人片av高清 | 亚洲成人www | 9999视频 | 精品视频日韩 | 日批在线观看视频 | 日本一区二区三区久久久久 | 欧美精品激情视频 | 天天干夜夜拍 | 久久精品欧美一区 | 青娱乐在线视频免费观看 | 少妇在线观看 | 波多野吉衣一区 | 天天操天天玩 | 黄色福利社 | 久久久久久久国产精品美女 | 天天玩天天操 | 亚洲欧美综合视频 | 精品国产乱码久久久久久久 | 51成人网 | 国产视频二区三区 | www.奇米| 婷婷六月丁| 欧美成本人视频 | 在线观看黄色的网站 | 日韩精品在线观看免费 | 日韩在线观看免费 | 怎么可能高潮了就结束漫画 | 四虎音影 | 一道本一区二区 | 精品国产无码在线 | 成人在线视频观看 | 高清一区二区在线 | 桃色视频 | 亚洲精品国产精品乱码在线观看 | 免费观看视频一区二区 | 欧美日韩有码 | 色秀av| 一本在线免费视频 | 深夜免费视频 | 最新av电影网站 | 欧洲成人在线 | 成年人免费视频网站 | 一区二区三区免费视频观看 | 国产乱free国语对白 |