Python中的sys, os, time模块都是非常常用的标准库模块。其中sys模块主要用于提供对解释器相关的信息和参数的访问,os模块主要用于操作系统相关的操作,time模块主要用于处理时间相关的操作。下面分别进行详细讲解。
一、sys模块
1.1 获取命令行参数
sys.argv是一个包含命令行参数的列表,第一个元素是脚本的名称,之后的元素是脚本的参数。下面是一个例子:
import sys
if len(sys.argv) < 2:
print("Usage: python script.py arg1 arg2...")
sys.exit(1)
print("The command line arguments are:")
for arg in sys.argv[1:]:
print(arg)
在上面的代码中,我们先判断命令行参数是否足够,如果不足,就输出使用说明并退出程序;如果足够,就遍历命令行参数并将它们打印出来。
1.2 获取当前Python解释器的信息
sys模块还提供了一些函数用于获取当前Python解释器的信息,比如:
import sys
print(sys.version) # 获取Python解释器的版本信息
print(sys.platform) # 获取Python解释器所在的平台信息
print(sys.maxsize) # 获取Python整型的最大值
在上面的代码中,我们使用了sys.version、sys.platform和sys.maxsize函数分别获取Python解释器的版本、平台和最大整数值。
二、os模块
2.1 文件和目录操作
os模块主要用于对操作系统的文件和目录进行访问和操作。比如下面是一个例子,用于遍历一个目录:
import os
def walk_dir(path):
for root, dirs, files in os.walk(path):
# 遍历当前目录下的所有文件夹和文件
for filename in files:
print(os.path.join(root, filename))
if __name__ == '__main__':
walk_dir('.')
在上面的代码中,我们使用了os.walk函数遍历当前目录下的所有文件夹和文件,并输出它们的路径。
2.2 获取文件和目录的属性
os模块还提供了一些函数用于获取文件和目录的属性,比如:
import os
filename = 'example.txt'
print(os.path.isfile(filename)) # 判断文件是否存在
print(os.path.getsize(filename)) # 获取文件大小
print(os.path.getmtime(filename)) # 获取文件修改时间
print(os.path.abspath(filename)) # 获取文件的绝对路径
在上面的代码中,我们使用了os.path.isfile、os.path.getsize、os.path.getmtime和os.path.abspath函数分别判断文件是否存在、获取文件大小、获取文件修改时间和获取文件的绝对路径。
三、time模块
3.1 时间戳和时间的相互转换
time模块主要用于处理时间相关的操作。比如,我们可以使用time.time()函数获取当前时间的时间戳,然后使用time.localtime()函数将时间戳转换为本地时间:
import time
timestamp = time.time()
localtime = time.localtime(timestamp)
print("Timestamp:", timestamp)
print("Localtime:", localtime)
在上面的代码中,我们使用了time.time和time.localtime函数分别获取当前时间的时间戳和本地时间。
如果要将本地时间转换为时间戳,可以使用time.mktime()函数:
import time
localtime = (2022, 2, 22, 22, 22, 22, 2, 53, 0)
timestamp = time.mktime(localtime)
print("Localtime:", localtime)
print("Timestamp:", timestamp)
在上面的代码中,我们使用了time.mktime函数将时间元组转换为时间戳。
3.2 时间的格式化和解析
time模块还提供了一些函数用于时间格式化和解析,比如:
import time
now = time.time()
localtime = time.localtime(now)
print(time.strftime("%Y-%m-%d %H:%M:%S", localtime)) # 时间的格式化
print(time.strptime("2022-02-22 22:22:22", "%Y-%m-%d %H:%M:%S")) # 时间的解析
在上面的代码中,我们使用了time.strftime和time.strptime函数分别进行时间的格式化和解析。其中time.strftime函数将时间元组转换为指定格式的字符串,time.strptime函数将字符串解析为时间元组。
四、示例说明
4.1 获取文件夹中所有文件并按时间排序
import os
from datetime import datetime
def get_files_sorted_by_time(path, reverse=False):
files = []
for filename in os.listdir(path):
filepath = os.path.join(path, filename)
if os.path.isfile(filepath):
mtime = os.path.getmtime(filepath) # 获取文件的修改时间
files.append((filepath, mtime))
# 按文件的修改时间排序
files_sorted = sorted(files, key=lambda x: x[1], reverse=reverse)
return files_sorted
if __name__ == '__main__':
path = '.'
files_sorted = get_files_sorted_by_time(path)
for fileinfo in files_sorted:
filepath, mtime = fileinfo
time_str = datetime.fromtimestamp(int(mtime)).strftime("%Y-%m-%d %H:%M:%S")
print(filepath, time_str)
在上面的代码中,我们使用了os.listdir函数遍历文件夹中的所有文件,然后使用os.path.getmtime函数获取文件的修改时间。最后使用sorted函数进行排序,并使用datetime.fromtimestamp函数将修改时间转换为本地时间。
4.2 获取本地时间并输出到文件
import os
import time
def write_localtime_to_file(filename):
localtime = time.localtime()
localtime_str = time.strftime("%Y-%m-%d %H:%M:%S", localtime)
with open(filename, 'w') as f:
f.write(localtime_str)
if __name__ == '__main__':
filename = 'localtime.txt'
write_localtime_to_file(filename)
print("Write localtime to file success!")
在上面的代码中,我们使用了time.localtime和time.strftime函数获取本地时间,并将时间字符串写入到文件中。最后,输出成功的提示信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python sys,os,time模块的使用(包括时间格式的各种转换) - Python技术站