鱼C论坛

 找回密码
 立即注册
查看: 3808|回复: 12

[技术交流] 超详细的sys 【1】

[复制链接]
发表于 2017-7-14 13:46:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 MSK 于 2017-7-14 13:46 编辑

sys.path



功能:获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到


这是我的sys.path:

  1. >>> sys.path
  2. ['', 'F:\\python\\python36\\Lib\\idlelib', 'F:\\python\\python36\\python36.zip', 'F:\\python\\python36\\DLLs', 'F:\\python\\python36\\lib', 'F:\\python\\python36', 'F:\\python\\python36\\lib\\site-packages', 'F:\\python\\python36\\lib\\site-packages\\setuptools-33.1.1-py3.6.egg', 'F:\\python\\python36\\lib\\site-packages\\pip-9.0.1-py3.6.egg']
复制代码





sys.stdout 和 sys.stderr



功能:处理标准输出/输入

代码源于网络
  1. >>> for i in range(3):
  2. ...     print'Dive in'
  3. Dive in
  4. Dive in
  5. Dive in
  6. >>> import sys
  7. >>> for i in range(3):
  8. ...     sys.stdout.write('Dive in')
  9. Dive inDive inDive in
  10. >>> for i in range(3):
  11. ...     sys.stderr.write('Dive in')
  12. Dive inDive inDive in
复制代码



标准输入(stdout)和标准错误(stderr)是内建在每一个 UNIX 系统中的管道

当print 某些东西时,结果前往 stdout 管道;

当程序崩溃并打印出调试信息 (例如 Python 中的 traceback (错误跟踪)) 的时候,信息前往 stderr 管道

stdout 和 stderr 都是类文件对象,调用它的 write 函数可以打印出你给定的任何字符串.


注意!它们都是只写的!



游客,如果您要查看本帖隐藏内容请回复



使用sys重定向输出

代码 源于网络,稍加过修改~

  1. print 'Dive in'        # 标准输出
  2. saveout = sys.stdout        # 备份一个stdout,这样的话之后你还可以将其设回正常
  3. fsock = open('out.log', 'w')      # 打开一个新文件用于写入。如果文件不存在,将会被创建。如果文件存在,将被覆盖。
  4. sys.stdout = fsock                 # 所有后续的输出都会被重定向到刚才打开的新文件上。
  5. print('这句话被我写进out.log')    # 这样只会将输出结果“打印”到日志文件中;屏幕上不会看到输出
  6. sys.stdout = saveout   # 在我们将 stdout 搞乱之前,让我们把它设回原来的方式。   
  7. fsock.close()     # 关闭日志文件。
复制代码


打开当前目录下的out.log,你可以看到这句话被写进了文件



游客,如果您要查看本帖隐藏内容请回复





重定向错误信息
  1. fsock = open('error.log', 'w')           # 打开你要存储调试信息的日志文件。
  2. sys.stderr = fsock                           # 将新打开的日志文件的文件对象赋值给stderr以重定向标准错误。
  3. raise Exception, 'this error will be logged'   # 引发一个异常,没有在屏幕上打印出任何东西,所有正常的跟踪信息已经写进error.log
复制代码


还要注意你既没有显示关闭日志文件,也没有将 stderr 设回最初的值




所有正常的跟踪信息已经写进error.log
所有正常的跟踪信息已经写进error.log
所有正常的跟踪信息已经写进error.log



这样挺好,因为一旦程序崩溃 (由于引发的异常),Python 将替我们清理并关闭文件



回复有彩蛋~彩蛋~彩蛋~


游客,如果您要查看本帖隐藏内容请回复




评分

参与人数 2荣誉 +5 鱼币 +8 收起 理由
小甲鱼 + 3
不二如是 + 5 + 5 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-7-14 13:53:16 | 显示全部楼层
有什么不对的地方还请指正~@~风介~ @不二如是 @小甲鱼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-14 14:26:38 | 显示全部楼层
hehe
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-14 17:48:03 | 显示全部楼层
虽然木有用过,但是这个粉粉的感觉,一看就喜欢~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-14 18:31:24 | 显示全部楼层
不二如是 发表于 2017-7-14 17:48
虽然木有用过,但是这个粉粉的感觉,一看就喜欢~

哈哈,你的html5好多代码写出的都是粉色~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-27 12:10:39 | 显示全部楼层
感谢楼主
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-8 17:46:42 | 显示全部楼层
顶一个看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-8 20:17:01 | 显示全部楼层
谢谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-5 21:31:43 From FishC Mobile | 显示全部楼层
谢谢分享      
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-9 11:49:16 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-9 18:52:33 | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-19 15:26:57 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-8 10:43:28 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 03:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表