Python小工具包

简介: 【5月更文挑战第2天】构建了一个Python小工具包,包含获取IP、域名解析、JSON格式化和时间戳转换的函数。通过`get_ip_address`和`resolve_domain`实现网络任务,`format_json`用于美化JSON数据,`timestamp_to_datetime`转换时间戳。这些函数可提高开发效率,易于整合到项目中,展现Python的简洁和灵活性。

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

Python是一种强大而灵活的编程语言,它的简洁语法和庞大的生态系统使得开发者能够轻松地构建各种应用和工具。在本文中,我们将一起构建一个小工具包,其中包含了一些常见任务的函数,如IP获取、域名解析、JSON格式化和时间戳转换。

1. IP获取和域名解析

首先,我们创建了两个函数,get_ip_addressresolve_domain,用于获取给定域名的IP地址以及解析给定IP地址的域名。这对于网络相关的任务非常有用。

import socket

def get_ip_address(domain):
    """
    获取指定域名的 IP 地址
    """
    try:
        ip_address = socket.gethostbyname(domain)
        return ip_address
    except socket.error as e:
        return f"Error: {e}"

def resolve_domain(ip_address):
    """
    解析指定 IP 地址的域名
    """
    try:
        domain = socket.gethostbyaddr(ip_address)
        return domain[0]
    except socket.error as e:
        return f"Error: {e}"

运行截图:

image-20240312165800341

2. JSON格式化

其次,我们定义了 format_json 函数,用于将JSON数据格式化成易读的字符串形式。这对于处理API响应或配置文件等数据结构非常方便。

import json

def format_json(data):
    """
    格式化 JSON 数据
    """
    try:
        formatted_json = json.dumps(data, indent=4)
        return formatted_json
    except json.JSONDecodeError as e:
        return f"Error: {e}"
json_data = {"key1": "value1", "key2": "value2"}
formatted_json = format_json(json_data)
print("Formatted JSON:")
print(formatted_json)

image-20240312165835210

3. 时间戳转换

最后,我们有一个 timestamp_to_datetime 函数,用于将时间戳转换为人类可读的日期时间格式。这对于处理日志文件或其他包含时间戳的数据非常实用。

from datetime import datetime

def timestamp_to_datetime(timestamp):
    """
    将时间戳转换为日期时间格式
    """
    try:
        dt_object = datetime.utcfromtimestamp(timestamp)
        return dt_object.strftime('%Y-%m-%d %H:%M:%S')
    except ValueError as e:
        return f"Error: {e}"
timestamp = 1647091200  # 2022-03-12 00:00:00 UTC
formatted_datetime = timestamp_to_datetime(timestamp)
print(f"Formatted Datetime: {formatted_datetime}")

image-20240312165859474

4. 示例用法

最后,我们展示了这些函数的简单用法,并说明如何将它们整合到你的项目中。

if __name__ == "__main__":
    domain_to_resolve = "example.com"
    ip_address = get_ip_address(domain_to_resolve)
    print(f"IP Address of {domain_to_resolve}: {ip_address}")

    resolved_domain = resolve_domain(ip_address)
    print(f"Resolved Domain of {ip_address}: {resolved_domain}")

    json_data = {
   
   "key1": "value1", "key2": "value2"}
    formatted_json = format_json(json_data)
    print("Formatted JSON:")
    print(formatted_json)

    timestamp = 1647091200  # 2022-03-12 00:00:00 UTC
    formatted_datetime = timestamp_to_datetime(timestamp)
    print(f"Formatted Datetime: {formatted_datetime}")

通过这个简单而实用的小工具包,你可以方便地执行一些常见的任务,同时也为你的项目提供了一些基础的功能。将这些函数整合到你的代码中,可以大大提高开发效率。

总的来说,Python的简洁性和灵活性使得构建这样的小工具包变得非常容易,希望这个简单的例子能够激发你构建更强大工具包的灵感!

5.完整代码可运行

import socket
import json
from datetime import datetime

def get_ip_address(domain):
    """
    获取指定域名的 IP 地址
    """
    try:
        ip_address = socket.gethostbyname(domain)
        return ip_address
    except socket.error as e:
        return f"Error: {e}"

def resolve_domain(ip_address):
    """
    解析指定 IP 地址的域名
    """
    try:
        domain = socket.gethostbyaddr(ip_address)
        return domain[0]
    except socket.error as e:
        return f"Error: {e}"

def format_json(data):
    """
    格式化 JSON 数据
    """
    try:
        formatted_json = json.dumps(data, indent=4)
        return formatted_json
    except json.JSONDecodeError as e:
        return f"Error: {e}"

def timestamp_to_datetime(timestamp):
    """
    将时间戳转换为日期时间格式
    """
    try:
        dt_object = datetime.utcfromtimestamp(timestamp)
        return dt_object.strftime('%Y-%m-%d %H:%M:%S')
    except ValueError as e:
        return f"Error: {e}"

# 示例用法
if __name__ == "__main__":
    domain_to_resolve = "baidu.com"
    ip_address = get_ip_address(domain_to_resolve)
    print(f"IP Address of {domain_to_resolve}: {ip_address}")

    resolved_domain = resolve_domain(ip_address)
    print(f"Resolved Domain of {ip_address}: {resolved_domain}")

    json_data = {"key1": "value1", "key2": "value2"}
    formatted_json = format_json(json_data)
    print("Formatted JSON:")
    print(formatted_json)

    timestamp = 1647091200  # 2022-03-12 00:00:00 UTC
    formatted_datetime = timestamp_to_datetime(timestamp)
    print(f"Formatted Datetime: {formatted_datetime}")

运行结果:
image-20240312165931761

总结

在这篇技术博客中,我们探讨了如何使用Python构建一个简单而实用的小工具包,包含了处理IP获取、域名解析、JSON格式化和时间戳转换等常见任务的函数。通过四个核心函数,我们能够轻松地执行网络操作、处理JSON数据和转换时间戳,提高了开发效率。

首先,通过 get_ip_addressresolve_domain 函数,我们实现了获取域名的IP地址和解析IP地址的域名的功能,适用于网络相关的任务。接着,我们介绍了 format_json 函数,用于将JSON数据格式化成易读的字符串形式,便于处理API响应或配置文件等。最后,通过 timestamp_to_datetime 函数,我们展示了将时间戳转换为日期时间格式的实用性,适用于处理日志文件等需要时间标记的数据。

总的来说,这个小工具包为开发者提供了一组简单而灵活的工具,可以轻松应对常见任务。Python的简洁语法和庞大的生态系统使得构建这样的小工具包变得非常容易。通过将这些函数整合到你的项目中,你可以更加高效地处理各种任务,同时为你的代码库增添一些基础的功能。希望这个简单的例子能够启发你构建更强大、更定制化的工具包,提升你的开发体验。

目录
相关文章
|
3天前
|
Python 人工智能 数据可视化
Python模块与包(八)
Python模块与包(八)
19 0
Python模块与包(八)
|
3天前
|
Python Windows
Python分发包安装pip3
Python分发包安装pip3
8 0
|
3天前
|
Python
【Python操作基础】——包
【Python操作基础】——包
|
3天前
|
Python
在Python中快捷引入缺失包的技巧和实践
在Python中快捷引入缺失包的技巧和实践
12 0
|
3天前
|
网络协议 算法 网络架构
Python网络编程之udp编程、黏包以及解决方案、tcpserver
Python网络编程之udp编程、黏包以及解决方案、tcpserver
|
3天前
|
Python
【Python笔记】pip intall -e命令:让你的工程直接使用开源包的源码,可断点调试,修改源码!
【Python笔记】pip intall -e命令:让你的工程直接使用开源包的源码,可断点调试,修改源码!
20 0
|
3天前
|
机器学习/深度学习 缓存 程序员
Python包管理工具 pip 及其常用命令和参数用法
Python包管理工具 pip 及其常用命令和参数用法
71 0
|
3天前
|
Python
python学习14-模块与包
python学习14-模块与包
|
3天前
|
Python
掌握Python导包技艺:揭秘导包语句的奥秘
掌握Python导包技艺:揭秘导包语句的奥秘
19 0
|
3天前
|
Unix iOS开发 MacOS
「Python系列」Python pip(包管理工具)、Anaconda介绍
Python pip是一个现代的、通用的Python包管理工具,用于查找、下载、安装、卸载Python包。它支持从PyPI(https://pypi.org/)、版本控制、本地项目以及直接从分发文件进行安装。pip是一个命令行程序,安装后,会向系统添加一个pip命令,该命令可以从命令提示符运行。
58 0
http://www.vxiaotou.com