python(os相關)

前言

os

os:
posix -> linux
nt-> windows

import os
print(os.name)

info = os.uname()
print(info)
print(info.sysname)
print(info.nodename)

print(os.environ)

print(os.environ.get('PATH'))

運行結果:

posix
posix.uname_result(sysname='Linux', nodename='localhost.localdomain', release='3.10.0-957.el7.x86_64', version='#1 SMP Thu Oct 4 20:48:51 UTC 2018', machine='x86_64')
Linux
localhost.localdomain
environ({'PATH': '/root/PycharmProjects/Thorne/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin', 'XAUTHORITY': '/run/gdm/auth-for-root-ChbohK/database', 'IMSETTINGS_MODULE': 'none', 'HISTCONTROL': 'ignoredups', 'XMODIFIERS': '@im=none', 'XDG_DATA_DIRS': '/root/.local/share/flatpak/exports/share/:/var/lib/flatpak/exports/share/:/usr/local/share/:/usr/share/', 'GDMSESSION': 'gnome-classic', 'DBUS_SESSION_BUS_ADDRESS': 'unix:abstract=/tmp/dbus-yi6gECVCE0,guid=d5892a15551a8b4a5c608da55ec224bc', 'PS1': '(venv) ', 'XDG_CURRENT_DESKTOP': 'GNOME-Classic:GNOME', 'MAIL': '/var/spool/mail/root', 'SSH_AGENT_PID': '14805', 'COLORTERM': 'truecolor', 'SESSION_MANAGER': 'local/unix:@/tmp/.ICE-unix/14328,unix/unix:/tmp/.ICE-unix/14328', 'USERNAME': 'root', 'LOGNAME': 'root', 'PWD': '/root/Downloads/day09', 'PYCHARM_HOSTED': '1', 'GJS_DEBUG_TOPICS': 'JS ERROR;JS LOG', 'PYTHONPATH': '/root/Downloads', 'LESSOPEN': '||/usr/bin/lesspipe.sh %s', 'SHELL': '/bin/bash', 'OLDPWD': '/opt/pycharm-community-2020.1/bin', 'GNOME_DESKTOP_SESSION_ID': 'this-is-deprecated', 'GNOME_TERMINAL_SCREEN': '/org/gnome/Terminal/screen/51386726_2e2e_4b0e_a017_c5c39709d950', 'VIRTUAL_ENV': '/root/PycharmProjects/Thorne/venv', 'IMSETTINGS_INTEGRATE_DESKTOP': 'yes', 'XDG_SESSION_DESKTOP': 'gnome-classic', 'LS_COLORS': 'rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=05;48;5;232;38;5;15:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;34:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.webm=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.axa=38;5;45:*.oga=38;5;45:*.spx=38;5;45:*.xspf=38;5;45:', 'SHLVL': '3', 'QT_IM_MODULE': 'xim', 'HISTSIZE': '1000', 'TERM': 'xterm-256color', 'GNOME_TERMINAL_SERVICE': ':1.118', 'LANG': 'en_US.UTF-8', 'XDG_SESSION_TYPE': 'x11', 'XDG_SESSION_ID': '2', 'DISPLAY': ':0', '_': '/opt/pycharm-community-2020.1/jbr/bin/java', 'GDM_LANG': 'en_US.UTF-8', 'PYTHONIOENCODING': 'UTF-8', 'DESKTOP_SESSION': 'gnome-classic', 'USER': 'root', 'XDG_MENU_PREFIX': 'gnome-', 'WINDOWPATH': '1', 'VTE_VERSION': '5202', 'GJS_DEBUG_OUTPUT': 'stderr', 'XDG_SEAT': 'seat0', 'SSH_AUTH_SOCK': '/tmp/ssh-b4aAyEJWMy3Z/agent.14328', 'PYTHONUNBUFFERED': '1', 'HOSTNAME': 'localhost.localdomain', 'GNOME_SHELL_SESSION_MODE': 'classic', 'XDG_RUNTIME_DIR': '/run/user/0', 'XDG_VTNR': '1', 'HOME': '/root'})
/root/PycharmProjects/Thorne/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin

一些用法

import os
import random
from os.path import exists,splitext,join

#1.
print(os.path.isabs(’/tmp/python’))
print(os.path.isabs(‘python’))

#2.
print(os.path.abspath(‘hello.jpg’))
print(os.path.join(’/home/kiosk’,‘hello.jpg’))
print(os.path.join(os.path.abspath(’.’),‘hello.jpg’))

#3.
filename = ‘/home/kiosk/PycharmProjects/20191221/day09/hello.jpg’
print(os.path.basename(filename))
print(os.path.dirname(filename))

#4.
os.mkdir(‘abc’)
os.makedirs(‘img/file’)
os.rmdir(‘img’)
os.rmdir(‘abc’)

#5.
os.mknod(‘file.txt’)
os.remove(‘file.txt’)

#6.rename
os.rename(‘data.txt’,‘data1.txt’)

#7.jubge if exits
print(os.path.exists(‘img’))

#8.
print(os.path.splitext(‘hello.jpg’))

#9.
print(os.path.split(’/tmp/hello/westos.jpg’))

dir

import os
from os.path import join

for root,dir,files in os.walk('/var/log'):
    # print(root)
    # print(dir)
    # print(files)
    for name in files:
        print(join(root,name))

運行結果:

/var/log/tallylog
/var/log/grubby_prune_debug
/var/log/lastlog
/var/log/wtmp

os.add

import os
import time

time1 = os.path.getctime('/etc/shadow')
print(time1)
tuple_time = time.localtime(time1)
print(tuple_time)

year = tuple_time.tm_year
month = tuple_time.tm_mon
day = tuple_time.tm_mday

with open('data1.txt','a') as f:
    f.write('%d %d %d' %(year,month,day))
    f.write('\n')

time_change

import time
import os

#1
tuple_time = time.localtime()
print(tuple_time)
print(time.mktime(tuple_time))

#2
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.
pwd_time = os.path.getctime('/etc/passwd')
print('pwd_time',pwd_time)
print(time.ctime(pwd_time))

#4.
print(time.localtime(pwd_time))

#5.
tuple_time = time.localtime()
print(time.mktime(tuple_time))

練習

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

import os
import psutil
from datetime import datetime

print('主機信息'.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()
boot_time_obj = datetime.fromtimestamp(boot_time)
# print(type(boot_time_obj))
now_time = datetime.now()
time1 = now_time - boot_time_obj

print('開機時間',boot_time_obj)
print('當前時間',str(now_time).split('.')[0])
print('開機時長',str(time1).split('.')[0])
print('當前登陸用戶'.center(50,'*'))
login_user = psutil.users()
print(login_user[0].name)

後記

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章