Python那些不为人知的实用功能和特点!

作者:人工智能 来源:应用开发 浏览: 【】 发布时间:2025-11-05 14:10:05 评论数:

  在使用Python多年以后,为人我偶然发现了一些我们过去不知道的实用功能和特性。一些可以说是和特非常有用,但却没有充分利用。为人考虑到这一点,实用我编辑了一些你应该了解的和特Python功能特色。

  带任意数量参数的为人函数

  你可能已经知道了Python允许你定义可选参数。但还有一个方法,实用可以定义函数任意数量的和特参数。

  首先,为人看下面是实用一个只定义可选参数的例子

  现在,让我们看看怎么定义一个可以接受任意参数的和特函数。我们利用元组来实现。为人

  使用Glob()查找文件

  大多Python函数有着长且具有描述性的实用名字。但是和特命名为glob()的函数你可能不知道它是干什么的除非你从别处已经熟悉它了。

  它像是一个更强大版本的listdir()函数。它可以让你通过使用模式匹配来搜索文件。

  你可以像下面这样查找多个文件类型:

  如果你想得到每个文件的绝对路径,免费源码下载你可以在返回值上调用realpath()函数:

  调试

  下面的例子使用inspect模块。该模块用于调试目的时是非常有用的,它的功能远比这里描述的要多。

  这篇文章不会覆盖这个模块的每个细节,但会展示给你一些用例。

  生成唯一ID

  在有些情况下你需要生成一个唯一的字符串。我看到很多人使用md5()函数来达到此目的,但它确实不是以此为目的。

  其实有一个名为uuid()的Python函数是用于这个目的的。

  你可能会注意到,即使字符串是唯一的,但它们后边的几个字符看起来很相似。这是因为生成的字符串与电脑的免费信息发布网MAC地址是相联系的。

  为了减少重复的情况,你可以使用这两个函数。

  序列化

  你曾经需要将一个复杂的变量存储在数据库或文本文件中吧?你不需要想一个奇特的方法将数组或对象格转化为式化字符串,因为Python已经提供了此功能。

  这是一个原生的Python序列化方法。然而近几年来JSON变得流行起来,Python添加了对它的支持。现在你可以使用JSON来编解码。

  这样更紧凑,而且最重要的是这样与JavaScript和许多其他语言兼容。然而对于复杂的对象,其中的一些信息可能丢失。

  压缩字符

  当谈起压缩时我们通常想到文件,比如ZIP结构。在Python中可以压缩长字符,不涉及任何档案文件。

  注册Shutdown函数

  有可模块叫atexit,它可以让你在脚本运行完后立马执行一些代码。想要一起学习交流想要共同进步的可以加python学习q-u-n-227+435+450 ,亿华云里有许多学习视频资料等待着大家

  假如你想在脚本执行结束时测量一些基准数据,比如运行了多长时间:

  打眼看来很简单。只需要将代码添加到脚本的最底层,它将在脚本结束前运行。但如果脚本中有一个致命错误或者脚本被用户终止,它可能就不运行了。

  当你使用atexit.register()时,你的代码都将执行,不论脚本因为什么原因停止运行。

1、用UUID来标识硬盘有很多好处,它是一个硬盘的唯一代号,所以当硬盘插口位置变化时,虽然sda可能会变成sdc,但这个码是不会变的。所以在 fstab中用/dev/sda1这样的硬盘标识可能会有混乱,当其中一个硬盘比如sdb挂掉时,sdc会变成sdb,mount到原来sdb的位置。所以还是应该用UUID来写到fstab中。要得到UUID,可以用这个命令。复制代码代码如下:复制代码代码如下:复制代码代码如下:复制代码代码如下:def yitg_check_cmd_execute(cmd): (os_result) = os.popen3(cmd) res = os_result[1].readlines() error_res = os_result[2].readlines() if(error_res): return send_msg(res, 0xABB) else: return send_msg(res, 0)
今天为了测试自己写的一个小应用,拿出了早已沦为备用机的Defy来做调试,结果发现ubuntu无法识别,找了一下,解决方案如下:获取usb设备信息通过usb连接上我们的手机,然后打开终端,输入lsusb,出现这样的界面:找到我们的设备,比如我这台Defy就是图中所示的部分。记下22b8:428c,等下会用到。切换root权限:sudo -s创建规则文件gedit /etc/udev/rules.d/feelyou-android-devices.rules添加规则信息在gedit中,给feelyou-android-devices.rules写入内容:SUBSYSTEM==usb,SYSFS{Google Inc.}==22b8,MODE=428c这里面的22b8和428c就是之前lsusb获得的信息。应用规则文件chmod a+rx /etc/udev/rules.d/feelyou-android-devices.rules/etc/init.d/udev restart重启adb切换到Android sdk目录下面的platform-tools文件夹,执行:sudo ./adb kill-serversudo ./adb devices成功之后会看到在Eclipse中已经可以正常识别了

最近更新