python sys,os,time模块的使用(包括时间格式的各种转换)

yizhihongxing

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技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • 一文读懂Python版本管理工具Pyenv使用

    一文读懂Python版本管理工具Pyenv使用 简介 Pyenv是一个Python版本管理工具,能够让你在同一台机器上同时安装和管理多个Python版本。它可以让不同的应用使用不同的Python版本,同时也可以解决在升级Python版本时,出现应用不兼容的问题。 安装 在MacOS系统上安装Pyenv 首先,你需要先安装HomeBrew。具体的安装步骤请参考…

    python 2023年5月30日
    00
  • 浅谈Python数学建模之数据导入

    让我为大家详细讲解一下“浅谈Python数学建模之数据导入”的完整攻略。 1. 数学建模之数据导入 在进行数学建模的过程中,数据导入是非常重要的一步。Python提供了许多库来处理数据,但是其中最常用的是Pandas库。 1.1 Pandas库 Pandas是一个用于数据分析和处理的Python库,它可以处理各种类型的数据,包括CSV、Excel、SQL、J…

    python 2023年6月3日
    00
  • python循环定时中断执行某一段程序的实例

    针对“python循环定时中断执行某一段程序”的需求,可以采用Python中的time模块和signal模块来实现。 一、使用time模块实现定时循环中断 1.1 示例说明 下面我们先通过示例来说明如何使用time模块实现定时循环中断。以下示例的需求是:每隔1秒执行一次某一段程序,并在等待3秒后中断程序。 import time def func(): pr…

    python 2023年6月3日
    00
  • 尝试使用 Python Jupyter Notebook 将带有地理标记的推文流式传输到 PostgreSQL 时出现问题

    【问题标题】:Problem trying to stream geotagged tweets into PostgreSQL using Python Jupyter Notebook尝试使用 Python Jupyter Notebook 将带有地理标记的推文流式传输到 PostgreSQL 时出现问题 【发布时间】:2023-04-07 21:51:…

    Python开发 2023年4月8日
    00
  • Python实现修改文件内容的方法分析

    Python实现修改文件内容的方法分析 在Python中,可以利用内置的open函数和文件读写模式来实现对文件内容的修改,常见的做法有以下几种。 方法一:利用with语句和文件对象的write方法 with open(‘file.txt’,’r+’) as f: text = f.read() text = text.replace(‘old’, ‘new’…

    python 2023年6月3日
    00
  • 用不到50行的Python代码构建最小的区块链

    下面是“用不到50行的Python代码构建最小的区块链”的完整攻略。 1. 准备工作 我们需要在本地安装Python3和Flask框架。 2. 创建一个最小的区块链 我们需要定义一些模块,包括区块、链和挖矿。具体代码如下: import datetime import hashlib import json from flask import Flask, …

    python 2023年6月2日
    00
  • python爬虫常用的模块分析

    Python爬虫常用的模块分析 在Python中,爬虫是很常见的一个应用场景。Python作为一门强大的脚本语言,有很多强大的库可以用于爬虫。下面就对Python爬虫常用的模块进行分析。 requests模块 requests模块是Python中最常用的http请求库之一。可以使用它发送get、post等http请求。该模块提供了很多常用的方法,如get()…

    python 2023年5月14日
    00
  • python错误处理详解

    Python错误处理详解 在编写Python程序时,难免会发生错误。对于程序员来说,要善于处理这些错误,让程序能够正常运行或者优雅地退出。本文将对Python的错误处理机制进行详细讲解,帮助读者更好地处理程序中的错误。 Python中的错误类型 Python中主要有以下几种错误类型: 语法错误(Syntax Error):代码无法被Python解释器理解。例…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部