Python sys、os、time及datetime模块核心用法与时间格式转换详解

咖啡半糖
咖啡半糖
发布时间:2026-10-13| 6人浏览过
原创

本文详细解析Python中sys、os、time及datetime四大模块的核心功能。涵盖sys.argv参数传递、编码设置及路径操作;os模块的文件目录管理与Shell命令执行;重点演示time与datetime模块中时间戳、结构化时间与字符串之间的多种格式转换方法,助力开发者高效处理系统交互与时间数据。

sys模块

sys.argv:用于从程序外部向程序内部传递参数。

位置参数argv[0]代表当前执行的Python文件本身,运行方式如 python xx.py 参数1 参数2 等。

self = sys.argv[0]
name = sys.argv[1]
age = sys.argv[2]
print self, name, age

sys.getdefaultencoding():用于获取系统当前的默认编码,通常默认为ascii。

print sys.getdefaultencoding()

sys.setdefaultencoding():用于设置系统默认编码。执行dir(sys)时不会显示此方法,在解释器中直接执行可能报错,需先执行reload(sys),再执行setdefaultencoding('utf8'),从而将系统默认编码设置为utf8(在Python 2.7环境中可能需要此操作)。

reload(sys)
sys.setdefaultencoding('utf8')

sys.path:获取指定模块搜索路径的字符串集合。

sys.path

sys.platform:获取当前运行的系统平台标识。

print sys.platform

sys.exit()

功能说明:当程序执行到主程序末尾时,解释器会自动退出。若需中途强制退出程序,可调用sys.exit函数,该函数接受一个可选的整数参数并返回给调用它的程序,表示你可以在主程序中捕获对sys.exit的调用。其中,0表示正常退出,其他数值表示异常退出。

for i in range(1, 10):
print '第%s次:' % i, i
if i == 5:
print '第五次退出'
sys.exit(0)

os模块

1. os.name():判断当前正在使用的平台,Windows系统返回‘nt’,Linux系统返回'posix'。

print os.name()

2. os.getcwd():获取当前工作目录。

print os.getcwd()

3. os.listdir():列出指定目录下所有的文件和目录名。

print os.listdir('.')

4. os.remove():删除指定的文件。

os.remove('aaa.txt')

5. os.rmdir():删除指定的目录。

os.rmdir('C://Users/xiaoxinsoso/Desktop/aaa')

6. os.mkdir():创建单层目录。注意:若需递归创建多级目录,可使用os.makedirs()。

os.makedirs('aaa/aaa')

7. os.path.isfile():判断指定对象是否为文件,是则返回True,否则返回False。

print os.path.isfile('ccc.txt')
print os.path.isfile('aaa')

8. os.path.isdir():判断指定对象是否为目录,是则返回True,否则返回False。例如:

print os.path.isdir('aaa')
print os.path.isdir('ccc.txt')

9. os.path.exists():检验指定的对象是否存在,存在则返回True,否则返回False。例如:

print os.path.exists('bbb')
print os.path.exists('aaa')
print os.path.exists('ccc.txt')

10. os.path.split():返回路径的目录部分和文件名部分。例如:

print os.path.split('C://Users/xiaoxinsoso/Desktop/aaa/ccc.txt')

11. os.getcwd():获取当前工作目录。

print os.getcwd()

12. os.system():执行Shell命令。

注意:在执行Shell命令时,如需调用Python之前的变量,可采用如下方式:

var = 123
os.environ['var'] = str(var) # 注意此处[]内得是 “字符串”
os.system('echo $var')

os.system('dir')

13. os.chdir():将当前目录更改为指定目录。

14. os.path.getsize():获取文件大小,若指定对象为目录,则返回0。

print os.path.getsize('ccc.txt')

15. os.path.abspath():获取绝对路径。例如:

print os.path.abspath('.')

16. os.path.join(path, name):连接目录和文件名。例如:

print os.path.join('c://user/xiaoxinsoso/', 'wenjian.txt')

17. os.path.basename(path):返回文件名。

print os.path.basename('ccc.txt')

18. os.path.dirname(path):返回文件所在的路径。

print os.path.dirname('C://Users/xiaoxinsoso/Desktop/aaa/ccc.txt')

19. 获取程序所在的实际目录。

if __name__ == "__main__":
print os.path.realpath(sys.argv[0])
print os.path.split(os.path.realpath(sys.argv[0]))
print os.path.split(os.path.realpath(sys.argv[0]))[0]

time模块

ticks = time.time()
print "当前时间戳为:", ticks

获取当前时间。

localtime = time.localtime(time.time())
print "本地时间为 :", localtime

获取格式化后的时间。

localtime = time.asctime(time.localtime(time.time()))
print "本地时间为 :", localtime

格式化日期。

格式化为2017-01-22 16:36:27形式。

print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

格式化为Sun Jan 22 16:36:27 2017形式。

print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())

将格式字符串转换为时间戳。

a = "Sat Mar 28 22:24:24 2016"
print time.mktime(time.strptime(a, "%a %b %d %H:%M:%S %Y"))

获取某月的日历。

cal = calendar.month(2017, 1)
print "以下输出2016年1月份的日历:"
print cal

datetime模块

datetime类型时间处理。

now = datetime.datetime.now()
print now
now = date time.datetime.now()
yes_time = now + date time.timedelta(days=-1) # 前一天的时间

datetime转换为string。

strdatetime = now.strftime("%Y-%m-%d %H:%M:%S") # 以字符串形式显示时间,显示全部
strdatetime1= now.strftime("%Y-%m-%d") # 以字符串形式显示时间,只显示日期
print strdatetime
print strdatetime1

string转换为datetime。

datetime1 = datetime.datetime.strptime(strdatetime1, "%Y-%m-%d")
print datetime1

datetime转换为时间戳。

time_time = time.mktime(datetime1.timetuple())
print time_time

时间戳转换为string。

time1 = time.strftime('%Y-%m-%d',time.localtime(time_time))
print time1

date转换为datetime。

date1 = datetime.date(2012, 11, 19)
date = datetime.date.today()
print date
print datetime.datetime.strptime(str(date),'%Y-%m-%d') #将date转换为str,在由str转换为datetime
print datetime.datetime.strptime(str(date1),'%Y-%m-%d') #将date转换为str,在由str转换为datetime

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。