python—os模塊、時間模塊

os模塊
作用:os模塊是python標準庫中的一個用于訪問操作系統功能的模塊, os模塊提供了其他操作系統接口,可以實現跨平臺訪問。
使用:
1 . 返回操作系統類型 :os.name
值為:posix 是linux操作系統
值為:nt 是windows操作系統

import os
print(os.name)
print('Linux' if os.name == 'posix' else 'Windows')運行結果為:
posix
Linux         

2 . 操作系統的詳細信息

import osinfo = os.uname()
print(info)
print(info.sysname)
print(info.nodename)運行結果:
posix.uname_result(sysname='Linux', nodename='foundation5.ilt.example.com', release='3.10.0-514.el7.x86_64', version='#1 SMP Wed Oct 19 11:24:13 EDT 2016', machine='x86_64')
Linux
foundation5.ilt.example.com

3.系統的環境變量

import osprint(os.environ)

通過key值獲取環境變量對應的value值

import os
print(os.environ.get('PATH'))運行結果:
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/kiosk/.local/bin:/home/kiosk/bin

4.判斷是否是絕對路徑
只會判斷路徑,并不會判斷目錄或者文件是否存在

import os
print(os.path.isabs('/tmp/ffff'))
print(os.path.isabs('hello.jog'))運行結果:
True
False

5.生成絕對路徑

import os
print(os.path.abspath('hello.png'))
print(os.path.join(os.path.abspath('.'),'hello.jpg'))
print(os.path.join('/home/kiosk','hello.jpg'))運行結果:
home/kiosk/PycharmProjects/20190523/hello.png
/home/kiosk/PycharmProjects/20190523/hello.jpg
/home/kiosk/hello.jpg

6.獲取目錄或文件名

import os
filename = '/home/dd/20190523/day06/hello.jpg'
print(os.path.basename(filename))
print(os.path.dirname(filename))運行結果:
hello.jpg
/home/dd/20190523/day06

7.創建和刪除目錄
os.mkdir()創建
os.makedirs()遞歸創建
os.rmdir()刪除
不能遞歸刪除目錄

8.創建文件 刪除文件
os.mknod()創建
os.remove()刪除

9.文件重命名

 import osos.rename('data.txt','data1.txt')

10.判斷文件或目錄是否存在

import os
print(os.path.exists('ips.txtyyyy'))

11.分離后綴名和文件名

import os
print(os.path.splitext('hello.jpg'))運行結果:
('hello', '.jpg')

12.將目錄名和文件名分離

import os
print(os.path.split('/tmp/hello/hello.jpg'))運行結果:
('/tmp/hello', 'hello.jpg')

練習題:
1 . 在當前目錄新建目錄img, 里面包含多個文件, 文件名各不相同(X4G5.png)

import os
import random
import string
def str_name():"""生成文件名稱"""name_li = random.sample(string.ascii_letters+string.digits,4)return ''.join(name_li)+'.png'
def create_file():os.mkdir('img')name = {str_name() for i in range(100)}for k in name:filename = os.path.join('img', k)os.mknod(filename)
create_file()

2 . 將當前img目錄所有以.png結尾的后綴名改為.jpg

import os
def change(dirname,old_suffix,new_suffix):filename_li = [name for name in os.listdir(dirname) if name.endswith(old_suffix)]for filename in filename_li:oldname = os.path.join(dirname, filename)newname = os.path.join(dirname, os.path.splitext(filename)[0] + new_suffix)os.rename(oldname, newname)
change('img','.png','jpg')

時間模塊
python中時間表示的類型

1.時間戳:即從1970年1月1日到現在,單位是秒

import timeprint(time.time())運行結果:
1560407829.1201346

2.字符串時間

import timeprint(time.ctime())運行結果:
Thu Jun 13 14:37:59 2019

3.元組類型的時間

import timeprint(time.localtime())
info = time.localtime()
print(info.tm_year)
print(info.tm_mon)運行結果:
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=13, tm_hour=14, tm_min=38, tm_sec=56, tm_wday=3, tm_yday=164, tm_isdst=0)
2019
6

文件的時間戳:
系統中文件存在三個時間戳:
atime:讀取一次文件的內容,該時間便會更新。比如對這個文件使用less命令或者more命令。(ls、stat這樣的命令不會修改文件訪問時間)
mtime:對文件內容修改一次便會更新該時間。例如使用vim等工具更改了文件內容并保存后,文件修改時間發生變化。通過ls –l列出的時間便是這個時間。要想看到文件訪問時間可使用ls –ul命令。
ctime:更改文件的屬性便會更新該時間,比如使用chmod命令更改文件屬性,或者執行其他命令時隱式的附帶更改了文件的屬性若文件大小等。
stat 文件名稱 #查看文件的時間戳
touch 文件名稱 #同時修改文件的三個時間戳

[kiosk@foundation5 Desktop]$ stat haha File: ‘haha’Size: 15168     	Blocks: 32         IO Block: 4096   regular file
Device: 801h/2049d	Inode: 137896031   Links: 1
Access: (0755/-rwxr-xr-x)  Uid: ( 1000/   kiosk)   Gid: ( 1000/   kiosk)
Access: 2019-06-13 08:52:55.289390893 +0800        ### atime
Modify: 2019-06-08 14:17:57.996665181 +0800	       ### mtime
Change: 2019-06-08 14:17:58.043666378 +0800        ### ctimeBirth: -[kiosk@foundation5 Desktop]$ touch haha
[kiosk@foundation5 Desktop]$ stat haha File: ‘haha’Size: 15168     	Blocks: 32         IO Block: 4096   regular file
Device: 801h/2049d	Inode: 137896031   Links: 1
Access: (0755/-rwxr-xr-x)  Uid: ( 1000/   kiosk)   Gid: ( 1000/   kiosk)
Access: 2019-06-13 14:46:28.080062542 +0800       
Modify: 2019-06-13 14:46:28.080062542 +0800
Change: 2019-06-13 14:46:28.080062542 +0800   ## 三個時間戳全部更改Birth: -

常用的時間轉換:
1 . 把元組的時間轉換為時間戳

import time
tuple_time = time.localtime()
print(tuple_time)
print(time.mktime(tuple_time))

2 . 把元組時間轉換成字符串時間

import time
tuple_time = time.localtime()
print(time.strftime('%m-%d',tuple_time))
print(time.strftime('%Y-%m-%d',tuple_time))
print(time.strftime('%T',tuple_time))
print(time.strftime('%F',tuple_time))

3 . 將時間戳類型轉換成為字符串時間

import os
import time
pwd_time = os.path.getctime('/etc/passwd')
print('pwd_time',pwd_time)
print(time.ctime(pwd_time))

4 . 將時間戳轉換為元組

import os
import time
pwd_time = os.path.getctime('/etc/passwd')
tuple_time = time.localtime()
print(time.localtime(pwd_time))

5 . 將元組類型轉換為時間戳

import timetuple_time = time.localtime()
print(time.mktime(tuple_time))

示例:
1 . 根據指定的格式把一個時間字符串解析為時間元組

import times = '2019-6-6'
print(time.strptime(s,'%Y-%m-%d'))
s_time = '09:00:00'
print(time.strptime(s_time,'%H:%M:%S'))

2 . datetime

import os
from datetime import date
from datetime import datetime
from datetime import timedeltaprint(date.today())
print(datetime.now())
# 計算三天前的時間和三天后的時間
d = date.today()
delta = timedelta(days=31)
print(d + delta)
print(d - delta)# 計算兩個小時前的時間和兩個小時后的時間
now_hour = datetime.now()
delta = timedelta(hours=2)
print(now_hour - delta)
print(now_hour + delta)# 返回兩個時間,計算兩個時間之間的時間差
now_time = datetime.now()
print(now_time)
pwd_time = os.path.getmtime('/etc/passwd')
print(pwd_time)
pwd_time_obj = datetime.fromtimestamp(pwd_time)
print(pwd_time_obj)
delta = now_time - pwd_time_obj
print(delta)

需求:
1.獲取當前主機信息, 包含操作系統名, 主機名,
內核版本, 硬件架構等
2.獲取開機時間和開機時長;
3.獲取當前登陸用戶

import os
import psutil
from datetime import datetimeprint('主機信息'.center(50,'*'))
info = os.uname()
print("""操作系統:%s主機名稱:%s內核版本:%s硬件架構:%s"""%(info.sysname,info.nodename,info.release,info.machine)
)print('開機信息'.center(50,'*'))
boot_time = psutil.boot_time() #返回一個時間戳
# 將時間戳轉化為datetime類型的時間
boot_time_obj = datetime.fromtimestamp(boot_time)
#print(type(boot_time_obj))
now_time = datetime.now()
#print(now_time)
delta_time = datetime.now()
delta_time = now_time - boot_time_obj
#print(delta_time)
#print(type(delta_time))print('開機時間:',boot_time_obj)
# str是為了將時間對象轉換為字符串,實現分離
print('當前時間:',str(now_time).split('.')[0])
print('開機時長:',str(delta_time).split('.')[0])print('當前登陸用戶'.center(50,'*'))
login_user = psutil.users()
print(login_user)
# info = psutil.users()[0]
# print(info.name)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/542081.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542081.shtml
英文地址,請注明出處:http://en.pswp.cn/news/542081.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

kotlin鍵值對數組_Kotlin程序檢查數組是否包含給定值

kotlin鍵值對數組Given an array and an element, we have to check whether array contains the given element or not. 給定一個數組和一個元素,我們必須檢查數組是否包含給定的元素。 Example: 例: Input:arr [34, 56, 7, 8, 21, 0, -6]element to…

enter sleep mode黑屏怎么解決_【linux】 不要再暴力關機了,講講我最近遇到的問題和完美解決方案...

歡迎關注我的個人公眾號:AI蝸牛車前言結束了每天的緊張的工作,這兩天真的有些肝。這兩天打打字,突然感覺手指頭疼起來了,想意識到成天打了十多個小時的鍵盤, 手指頭都疲勞了 之后這兩天基本上除了基本的吃睡&#xff…

重復T次的LIS的dp Codeforces Round #323 (Div. 2) D

http://codeforces.com/contest/583/problem/D 原題:You are given an array of positive integers a1,?a2,?...,?an??T of length n??T. We know that for any i?>?n it is true that ai??ai?-?n. Find the length of the longest non-decreasing …

微擎pc 導入前綴_段覆蓋前綴| 8086微處理器

微擎pc 導入前綴As we already know that the effective address is calculated by appending the segment registers value and adding up the value of the respective offset. But what if we want to choose some other offset than the assigned one. 眾所周知&#xff0…

python—面向對象

面向過程 面向對象: 面向過程:—側重于怎么做? 1.把完成某一個需求的 所有步驟 從頭到尾 逐步實現 2.根據開發要求,將某些功能獨立的代碼封裝成一個又一個函數 3.最后完成的代碼,就是順序的調用不同的函數 特點&#…

5中bug vue_蘋果官網出BUG!這些都只要一兩百元

近日,有網友在網上反饋稱,他發現蘋果官網商城出現了BUG!眾多上千元的產品,BUG價只需一兩百元。比如Shure MOTIV MV88 Digital立體聲電容式麥克風配件。正常售價1288元,而BUG后的價格是235元。UBTECH Jimu Astrobot Cos…

常用壓縮,解壓與打包

常用壓縮格式: .zip .zg .bz2 .tar.gz .tar.bz2.zip格式壓縮zip 壓縮文件名 源文件#壓縮文件注:壓縮文件名寫.zip后綴是為了標記該文件的壓縮類型,方便管理。注:在壓縮時有壓縮格式轉換,所以當源文件很小時&#xff0c…

css禁用選中文本_使用CSS禁用文本選擇突出顯示

css禁用選中文本Introduction: 介紹: Texts are the most fundamental elements of any websites or web pages, they form the basis of the web pages or websites because if you don’t write something that you will not be able to present anything. There…

CDN加速實現—varnish

CDN介紹: 1 . 對cdn的理解: CDN的全稱是(Content Delivery Network),即內容分發網絡;加速器,反向代理緩存。CDN系統能夠實時的根據網絡流量和各節點的連接,負載狀況以及到用戶的舉例…

3dmax如何拆分模型_3dmax制作裝飾柜1

大家好,今天我來為大家講解一下如何利用3dmax制作裝飾柜。我們需要制作裝飾柜模型,當我們為它添加一個材質后,它就是這樣的效果。單擊創建,選擇圖形,對象為樣條線,選擇矩形在場景中進行創建。單擊修改&…

TODO:macOS上ThinkPHP5和Semantic-UI集成

TODO:macOS上ThinkPHP5和Semantic-UI集成1. 全局安裝 (on OSX via homebrew)Composer 是 homebrew-php 項目的一部分2. 把Xcode升級到8.1后繼續安裝Composer3. 使用composer創建TP5項目MWL-Dispatchcomposer create-project topthink/think MWL-Dispatch4. 配置apac…

np.expm1_JavaScript中帶有示例的Math.expm1()方法

np.expm1JavaScript | Math.expm1()方法 (JavaScript | Math.expm1() Method) Math operations in JavaScript are handled using functions of math library in JavaScript. In this tutorial on Math.expm1() method, we will learn about the expm1() method and its workin…

距離傳感器控制燈泡代碼_生迪全彩智能 LED 燈泡體驗評測

市面上大多數智能燈具無外乎智能控制,冷暖標準區間的簡單調光,僅僅滿足我們日常照明之外,似乎用處不多。如果有一款能在自己房間制造多彩氛圍的燈泡就好了。這次有幸體驗到了華為智能家居生態鏈產品生迪全彩智能 LED 燈泡,才發現彩…

mysql啟動與關閉(手動與自動)

手動管理mysql的啟動與關閉 [rootmysql ~]# service mysql start --手動啟動mysqlStarting MySQL. SUCCESS![rootmysql ~]# service mysql stop --手動關閉mysql Shutting down MySQL.. SUCCESS! [rootmysql ~]# mysqld --verbose --help --查看MySQL的默認參數的具體值 如果每…

JavaScript中帶有示例的Math.round()方法

JavaScript | Math.round()方法 (JavaScript | Math.round() Method) Math.round() is a function in math library of JavaScript that is used to round the given number floating-point number to the nearest integer value. Math.round()是JavaScript數學庫中的函數&…

內部導線拉力測試_珠海后環回收試驗機現金支付拉力試驗機回收和諧溫馨的環境...

珠海后環回收試驗機現金支付拉力試驗機回收和諧溫馨的環境深圳富興二手設備回收,拉力試驗機回收,恒溫恒濕箱回收,恒溫恒濕試驗箱回收,恒溫恒濕培養箱回收,高低溫試驗箱回收,高低溫沖擊試驗機回收&#xff0…

lvs負載均衡—ldirectord(DR模式的健康檢查)

作用: 健康檢查對企業而言也是由為重要,在生活中,有時候訪問網頁訪問不到,就會跳出來一些圖形告訴你訪問失敗,這就是健康檢查的作用,當服務器都掛掉的時候,告訴你暫時訪問不了。 ldirectord是后…

Reactor by Example--轉

原文地址:https://www.infoq.com/articles/reactor-by-example Key takeaways Reactor is a reactive streams library targeting Java 8 and providing an Rx-conforming APIIt uses the same approach and philosophy as RxJava despite some API differencesIt i…

springboot項目后臺運行關閉_springboot項目在服務器上部署過程(新手教程)

環境:服務器系統:ubuntu16jdkmysql工具 xshell6下載地址:https://www.netsarang.com/download/down_form.html?code622&downloadType0&licenseType1xftp6下載地址:https://www.netsarang.com/download/down_form.html?c…

如何在React Native中使用文本輸入組件?

You know, an app becomes more authentic and professional when there is the interaction between the app and the user. 您知道,當應用程序與用戶之間存在交互時,該應用程序將變得更加真實和專業。 The text input component in react-native brin…