1、文件

open()代开文件或者创建文件

fout=open('oops.txt','wt')
print('Oops, I created a file.',file=fout)
fout.close()

exists()检查文件是否存在,传入相对或者绝对路径

import os
>>>os.path.exist('oops.txt')
True
>>>os.path.exist('./oops.txt')
True
>>>os.path.exist('.')
True
>>>os.path.exist('..')
True

isfile()、isdir()、isabs()检查是否为文件、目录

>>>os.path.isfile('oops.txt')
True
>>>os.path.isdir(.) #当前目录
True
>>>os.path.isdir(..) #上层目录
True
>>>os.path.isabs('oops.txt') #判断绝对路径
False

copy()、move()复制文件

import shutil
>>>shutil.copy('oops.txt','ohno.txt') #复制不删除原文件
>>>shutil.move('oops.txt','ohno.txt') #复制并删除原文件

rename()重命名

>>>os.rename('ohno.txt','ohwell.txt')

link()、symlink()、islink()创建硬链接、符号链接、判断符号链接

>>>os.link('oops.txt','yikes.txt')
>>>os.path.isfile('yikes.txt')
True
>>>os.path.islink('yikes.txt')
False
>>>os.symlink('oops.txt','jeepers.txt')
>>>os.path.islinl('jeepers.txt')
True

chmod()修改权限,接受一个八进制值,包含用户、用户组、权限。Unix系统。

>>>os.chmod('oops.txt',0o400) #只能被拥有者读
imprt stat
>>>os.chmod('oops.txt',stat.S_IRUSR)

chown()修改所有者。Unix/Linux/Mac系统。

uid=5
gid=22
>>>os.chown('oops.txt',uid,gid) #指定用户ID和用户组ID

abspath()获取绝对路径名

>>>os.path.abspath('oops.txt')
'/usr/gg/oops.txt'

realpath()获取符号链接对应文件的绝对路径。

>>>os.path.realpath('jeepers.txt')
'/usr/gg/oops.txt'

remove()删除文件

>>>os.remove('oops.txt')
>>>os.path.exists('oops.txt')
False

2、目录

mkdir()创建目录

>>>os.mkdir('poems')
>>>os.path.exists('poems')
True

rmdir()删除目录

>>>os.rmdir('poems')
>>>os.path.exists('poems')
False

listdir()列出目录内容

>>>os.mkdir('poems')
>>>os.listdir('opems')
[]
>>>os.mkdir('opems/mm')
>>>os.listdir('poems')
['mm']

chdir()修改当前目录

>>>os.chdir('poems')
>>>os.listdir('.')
['mm']

glob()列出匹配文件

  • *匹配任意名称(re中是.*)
  • ?匹配一个字符
  • [abc]匹配字符a、b、c
  • [!abc]匹配除a、b、c之外的字符
import glob
>>>glob.glob('m*') #获取以m开头的文件和目录
['mm']
>>>glob.glob('?')#获取名称为1个字符的文件和目录
[]
>>>glob.glob('m?m') #获取名称为3个字符并且以m开头和结尾的文件和目录
[]
>>>glob.glob('[abm]*m')#获取所有以a、b、m开头并且以m结尾的文件和目录
['mm']

3、程序和进程

当运行一个程序时,系统会创建一个进程。该进程会使用系统资源(CPU、内存和磁盘空间)和惭怍系统内核中的数据结构(文件、网络连接、用量统计等)。进程之间互相隔离,一个进程无法访问其他进程的内容,也无法操作其他进程。

操作系统会跟踪所有正在运行的进程,给每个进程一个时间片,结束后切换到其他进程。

os.getpid() #获取正在运行的python解释器的进程号
os.getcwd() #获取正在运行的python解释器的当前工作目录
os.getuid() #获取用户ID
os.getgid() #获取用户组ID

使用subprocess模块启动和终止程序。

import subprocess
ret=subprocess.getoutput('date')#获取Unix date程序的输出,返回字符串
ret=subprocess.getoutput('date -u')#使用参数
ret=subprocess.getoutput('date -u| wc')#使用管道传给wc命令

check_output()接受一个命令命令和参数列表,返回字节类型输出。

ret=subprocess.check_output(['date','-u'])

getstatusoutput()获取其他程序的退出状态,返回一个包含状态码和输出的元组

ret=subprocess.getstatusoutput('date')

call()退出状态

ret=subprocess.call('date')
ret2=subprocess.call('date -u',shell=True) #调用shell
ret3=subprocess.call(['date','-u'])

使用multiprocessing模块运行多进程

import multiprocessing
import os
def do_this(what):
whoami(what)
def whoami(what):
print('Process %s says: %s.'%(os.getpid(),what)) if __name__=='__main__':
whoami('I'm the main program')
for n in range(4):
p=multiprocessing.Process(target=do_this,args=("I'm the function %s"%n,))
p.start()

使用terminate()终止进程

import multiprocessing
import time
import os
def whoami(name):
print("I'm %s, in process %s."%(name,os.getpid()))
def loopy(name):
whoami(name)
start=1
stop=1000000
for num in range(start,stop):
print("\tNumber %s of %s. Honk!"%(num,stop))
time.sleep(1) if __name__==‘__main__’:
whoami('main')
p=multiprocessing.Process(target=loopy,args=("loopy",))
p.start()
time.sleep(5)
p.terminate()

4、日期和时间

isleap()检验闰年

import calendar
>>>calendar.isleap(1900)
False
>>>calendar.isleap(2000)
True

datetime模块:

  • date处理年月日
  • time处理时分秒、微秒
  • datetime处理日期和时间同时出现的情况
  • timedelta处理日期和/或时间间隔

创建date对象.date范围从1-1-1到9999-12-31.

import datetime import date
t1=date(2014,10,31)
>>>t1.day
31
>>>t1.month
10
>>>t1.year
2014
>>>t1.isoformat()#ISO 8601标准
'2014-10-31'

today()生成今天日期

now=date.today()

使用timedelta对象实现date加法

from datetime import date,timedelta
one_day=timedelta(days=1)
tomorrow=now+one_day
yesterday=now-one_day

创建time对象

from datetime import time
noon=time(12,0,0)
>>>noon.hour
12
>>>noon.minute
0
>>>noon.second
0
>>>noon.microsecond
0

创建datetime对象

from datetime import datetime
some_day=datetime(2014,1,2,3,4,5,6)
>>>some_day.isoformat()
'2014-01-02T03:04:05.000006'
now=datetime.now()

combine()将一个date对象和一个time对象合并为一个datetime对象。

from datetime import time,date,datetime
noon=time(12)
this_day=date.today()
noon_today=datetime.combine(this_day,noon)
>>>noon_today.date()
>>>noon_today.time()

使用time模块

time()

import time
now=time.time() #从1970.1.1零点开始的秒数(纪元值)
>>>time.ctime(now) #转换为字符串,包含年月日星期时分秒

localtime()返回当前系统时区下时间,gmtime()返回UTC时间,两者返回struct_time对象。使用mktime()函数可以将struct_time对象转为纪元值,但是只能精确到秒。

now=time.time()
t1=time.localtime(now)
t2=time.gmtime(now)
>>>time.mktime(t1)

读写日期和时间

strftime()把日期和时间转换为字符串,该方法在datetime、date、time对象里有,time模块也有。

  • %Y:年,范围:1900-...
  • %m:月,范围:01-12
  • %B:月名
  • %b:月名缩写
  • %A:星期
  • %a:星期缩写
  • %H:时,24小时制,00-23
  • %I:时,12小时制,01-12
  • %p:上午/下午,AM/PM
  • %M:分,00-59
  • %S:秒,00-59

数字左侧补零。

import time
fmt="It's %A, %B %d, %Y, local time %I:%M:%S%p"
t=time.localtime()
>>>time.strftime(fmt,t)

date对象的strftime()函数只能获取日期部分,时间默认为午夜;time对象的strftime()函数只会转换时间部分,日期为1900-1-1.

将字符串转为日期或时间,可以用strptime()函数。字符串的非格式化部分必须完全匹配,需要带有破折号分隔。返回一个struct_time对象。

import time
fmt="%Y-%m-%d"
>>>time.strptime("2012-01-29",fmt)

setlocal()修改不同国家语言的月和日名称。

第一个参数为日期,第二个参数为结合语言和国家名称的缩写字符串。可以用local.local_alias.keys()获取所有值。

import locale
from datetime import date
tt=date(2014,10,31)
for lang_country in ['en_us','fr_fr','de_de','es_es','is_is']:
print(locale.setlocale(local.LC_TIME,lang_country))
print(tt.strftime('%A,%B %d')) names=locale.locale_alias.keys()
good_names=[name for name in names if len(name)==5 and name[2]=='_']#获取特定格式的缩写
de=[name for name in good_names if name.startwith('de')]#获取德国语言

python 系统相关操作的更多相关文章

  1. python文件相关操作

    Python文件相关操作 打开文件 打开文件,采用open方法,会将文件的句柄返回,如下: f = open('test_file.txt','r',encoding='utf-8') 在上面的代码中 ...

  2. python subprocess相关操作

    python subprocess常用操作 1.subprocess模块的常用函数 函数 描述 subprocess.run() Python 3.5中新增的函数.执行指定的命令,等待命令执行完成后返 ...

  3. python 集合相关操作

    集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集 ...

  4. python集合相关操作

    集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集 ...

  5. python PIL相关操作

    项目中需要用python生成二维码,这里记录一下相关PIL相关操作. RGBA问题: 需要将图片A粘贴到图片B上,之前没有注意透明度问题,A的背景是透明的,粘贴到B上后,A的周围是黑的.后来才发现是P ...

  6. Python容器相关操作

    (集合与字典除外)的容器相关操作 (1)容器的拼接 >>> 'abc' + 'def' 'abcdef' (2)容器的重复 >>> (1, 2) * 3 (1, 2 ...

  7. python selenium 相关操作

    selenium : 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Fi ...

  8. python - 系统交互操作(subprocess)

    本文摘于云游道士 链接:https://www.cnblogs.com/yyds/p/7288916.html 个人简化,便于查询. 命令行指令的执行通常有两个比较关注的结果: 命令执行的状态码--表 ...

  9. python os相关操作

    python os模块常用操作 什么时候使用os模块? 操作文件及文件夹(对于文件及文件夹的增删改查) 1.获取当前文件夹的工作目录 注意不是当前文件所在文件,即当前执行python文件的文件夹 pr ...

随机推荐

  1. 【批量加入】-拼接sql字符串

    如今做的一个项目须要用到批量加入,可是封装的底层没有这种方法,所以自食其力,自己来写.我们用的是拼接sql字符串的方法来实现功能. 详细实现流程:首先将须要的数据存储到实体的list中,然后将这个li ...

  2. C++ STL标准模板库(list)

    //list的使用 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<list> using namesp ...

  3. Matlab之合并音频

    程序功能: 1.读入wav下的所有音频 2.每个音频截取前0.6秒 3.合并每个音频 clear all; cd = 'wav'; waveFiles = dir(fullfile(cd,'*.wav ...

  4. ARM汇编(2)(指令)

    一,ARM汇编语言立即数的表示方法 十六进制:前缀:0x 十进制:无前缀 二制:前缀:0b 二,常用的ARM指令(标准的ARM语法,GNU的ARM语法) 1.@M开头系列 MOV R0, #12 @R ...

  5. SSIM(structural similarity index),结构相似性

    ssim算法原理 - 我们都不是神的孩子 - CSDN博客 http://blog.csdn.net/ecnu18918079120/article/details/60149864 一.结构相似性( ...

  6. Reactjs中的相关机制

    http://blog.csdn.net/cengjingcanghai123/article/details/48480473 https://segmentfault.com/a/11900000 ...

  7. Github初试~从安装到连接到版本库

    这里我就只说说从安装到连接到github库时出现的错误,以及如何解决 1. 下载github,安装后你就可以在系统中右键看到 Gui 和 Bush按钮 2. 此时你可能会去尝试着去连接你在github ...

  8. python数字类型

    Numbers >>> 5+4 9 >>> (6/2)+5 8.0 >>> >>> print(17/3) 5.66666666 ...

  9. quartz定时任务配置

    参考:http://www.cnblogs.com/kay/archive/2007/11/02/947372.html Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quar ...

  10. 使用maven搭建SSM框架

    使用maven搭建SSM框架,首先得准备好maven环境. 搭建maven环境 第一步:下载maven http://maven.apache.org/download.cgi 下载后解压就可以了. ...