Python基础(二十三、导入第三方包,自定义包使用案例)

一、导入第三方包

1.什么是第三方包?有什么作用?

第三方包就是非Python官方内置的包,可以安装它们扩展功能,提高开发效率。

2.如何安装?

在命令提示符内:

  • pip install 包名称
  • pip install -ihttps://pypi.tuna.tsinghua.edu.cn/simple 包名称
  • 在开发工具中安装,例如PyCharm、Idea……

如果没有安装过pip的可以查看Python基础(一、安装环境及入门)进行安装

3.常用的第三方包

Python有许多常用的第三方包,用于各种不同的任务和领域。以下是一些常见的第三方包及其简要描述:

  1. NumPy:提供高性能的数值计算和科学计算功能,包括强大的数组操作和数学函数。
  2. Pandas:用于数据分析和数据处理的强大工具,提供了高级数据结构和数据操作功能。
  3. Matplotlib:用于绘制图表和可视化数据的库,提供丰富的绘图选项和样式。
  4. Scikit-learn:用于机器学习和数据挖掘的库,提供了许多经典的机器学习算法和工具。
  5. TensorFlow:谷歌开发的深度学习框架,提供了灵活的工具和资源来构建和训练神经网络模型。
  6. PyTorch:Facebook开发的深度学习框架,提供了动态计算图和易于使用的API,适用于研究和生产环境。
  7. Django:用于构建Web应用程序的高级Python框架,提供了强大的功能和便捷的开发工具。
  8. Flask:一个轻量级的Web框架,用于快速开发简单的Web应用程序和API。
  9. Requests:用于发送HTTP请求和处理响应的库,提供了简洁而直观的API。
  10. BeautifulSoup:用于解析HTML和XML文档的库,提供了灵活的方式来提取和操作数据。

二、自定义工具包

2.1 练习

创建一个自定义包,名称为: myUtils (我的工具)
在包内提供2个模块:

strUtil.py (字符串相关工具)

  • 函数:strReverse(s),接受传入字符串,将字符串反转返回
  • 函数:substr(s,x,y),按照下标x和y,对字符串进行切片

fileUtil.py (文件处理相关工具)

  • 函数:print_fileinfo(file_name),接收传入文件的路径,打印文件的全部内容,如文件不存在则捕获异常,输出提示信息,通过finally关闭文件对象
  • 函数:append_to_file(file_name,data),接收文件路径以及传入数据,将数据追加写入到文件中

2.2 答案

myUtils/
	__init__.py
	fileUtil.py
	strUtil.py
	myUtilsTest.py

fileUtil.py

"""
 - 函数:print_fileinfo(file_name),接收传入文件的路径,打印文件的全部内容,如文件不存在则捕获异常,输出提示信息,通过finally关闭文件对象
 - 函数:append_to_file(file_name,data),接收文件路径以及传入数据,将数据追加写入到文件中
"""
from requests import *
def print_fileinfo(file_name):
    file = None
    try:
        file = open(file_name,"r",encoding="utf-8")
        print(file.read())
    except Exception as e:
        print(f"程序出现异常:{e}")
    finally:
        if file:
            file.close()


def append_to_file(file_name, data):
    with open(file_name,"a",encoding="utf-8") as file:
        file.write("\n")
        file.write(data)

strUtil.py

"""
- 函数:strReverse(s),接受传入字符串,将字符串反转返回
- 函数:substr(s,x,y),按照下标x和y,对字符串进行切片
"""

def strReverse(str):
    return str[::-1]


def substr(s, x, y):
    return s[x:y]

myUtilsTest.py

from myUtils.strUtil import *
from myUtils.fileUtil import *

print(strReverse("test"))

print(substr("testtest",0,4))

print_fileinfo("D:/test/demo/myUtilsTest1.py")

append_to_file("D:/test/demo/myUtils/myUtilsTest.py", "#测试完毕")

输出:

tset
test
程序出现异常:[Errno 2] No such file or directory: 'D:/test/demo/myUtilsTest1.py'

myUtilsTest.py文件最后增加一行

#测试完毕
  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是在ROS 2中使用Python自定义消息的示例: 1. 首先,我们需要安装ROS 2并设置环境变量。 2. 然后创建一个ROS 2工作区并创建一个ROS 2软件。 ``` mkdir -p ~/ros2_ws/src cd ~/ros2_ws/src ros2 pkg create mypkg --build-type ament_python --dependencies rclpy ``` 3. 在mypkg中创建一个名为msg的文件夹,并在其中创建一个名为MyMsg.msg的文件。 ``` mkdir msg touch msg/MyMsg.msg ``` 在MyMsg.msg文件中定义自定义消息: ``` # My custom message int32 id string name float32 value ``` 4. 使用以下命令在mypkg中生成Python代码: ``` cd ~/ros2_ws colcon build --packages-select mypkg ``` 5. 为了测试自定义消息,我们将创建一个发布者和一个订阅者节点。 在mypkg中创建一个名为publisher.py的文件,并将以下代码添加到文件中: ``` import rclpy from rclpy.node import Node from mypkg.msg import MyMsg class MyPublisher(Node): def __init__(self): super().__init__('my_publisher') self.publisher_ = self.create_publisher(MyMsg, 'my_topic', 10) self.timer = self.create_timer(0.5, self.timer_callback) self.i = 0 def timer_callback(self): msg = MyMsg() msg.id = self.i msg.name = 'My Message' msg.value = 2.5 self.publisher_.publish(msg) self.get_logger().info('Publishing: "%d, %s, %f"' % (msg.id, msg.name, msg.value)) self.i += 1 def main(args=None): rclpy.init(args=args) my_publisher = MyPublisher() rclpy.spin(my_publisher) my_publisher.destroy_node() rclpy.shutdown() if __name__ == '__main__': main() ``` 在mypkg中创建一个名为subscriber.py的文件,并将以下代码添加到文件中: ``` import rclpy from rclpy.node import Node from mypkg.msg import MyMsg class MySubscriber(Node): def __init__(self): super().__init__('my_subscriber') self.subscription = self.create_subscription( MyMsg, 'my_topic', self.listener_callback, 10) self.subscription # prevent unused variable warning def listener_callback(self, msg): self.get_logger().info('Received: "%d, %s, %f"' % (msg.id, msg.name, msg.value)) def main(args=None): rclpy.init(args=args) my_subscriber = MySubscriber() rclpy.spin(my_subscriber) my_subscriber.destroy_node() rclpy.shutdown() if __name__ == '__main__': main() ``` 6. 最后,使用以下命令运行发布者和订阅者节点: ``` ros2 run mypkg publisher.py ros2 run mypkg subscriber.py ``` 在发布者节点中,我们定义了一个MyMsg类型的消息,并在定时器回调中填充消息数据并将其发布到my_topic主题。在订阅者节点中,我们订阅了my_topic主题,并在回调函数中打印收到的消息。 这是一个简单的使用Python自定义消息的ROS 2示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈年小趴菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值