它会显示有关命令语法、说明、细节和可用的选

2019-07-17 作者:小鱼儿玄机30码姐妹   |   浏览(75)

Python模块知识6:OS、SYS模块,pythonos

1、os模块,和系统相关的,比如获取路径、目录、文件夹之类

常用方法:

  • os.getcwd() #获取当前工作目录,即当前Python脚本工作的目录路径

  • os.rename('oldname','new')#重命名文件/目录

  • os.path.abspath(path) #返回path规范化的绝对路径,含文件名的

  • os.path.dirname(path) #获取文件所在的文件夹名称

  • os.chdir("dirname") #改变当前脚本的工作目录,相当于shell下的cd

  • os.path.join(path1[,path2[,...]])#将多个路径组合返回,第一个绝对路径之前的参数将被忽略

  • os.curdir #返回当前目录:('.')

  • os.pardir #获取当前目录的父目录字符串名('..')

  • os.makedirs('dir1/dir2')#可生产多层递归目录

  • os.removedirs('dirname1')#若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,以此类推

  • os.mkdir('dirname')#生成单级目录,相当于shell中的mkdir dirname

  • os.rmdir('dirname')#删除单级空目录,若目录不为空,则无法删除,报错,相当于shell中的rmdir dirname

  • os.listdir('dirname')#列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

  • os.remove()#删除一个文件,

  • os.stat('path/filename')#获取文件/目录信息

  • os.sep 操作系统特定的路径分隔符,win下为"\",linux下为"/"

  • os.linesep #当前平台使用的行中支付,win下为"tn",Linux下为"/n"

  • os.pathsep#用于分隔文件路径的字符串

  • os.name #字符串只是当前使用平台,win->'nt';Linux->'posix'

  • os.system("bash command")#运行shell命令,直接显示

  • os.environ#获取系统环境变量

  • 小鱼儿玄机30码姐妹,os.path.split(path)#将path分割成目录和文件名二元组返回

  • os.path.basename(path)#返回path最后的文件名,如何path以/或结尾,那么就会返回空值,即os.path.split(path)第二个元素

  • os.path.exists(path) #如果path存在,返回True,如果path不存在,则返回False

  • os.path.isabs(path)#如果path是绝对路径,返回True

  • os.path.isfile(path)#如果path是一个存在的文件,返回True,否则返回False

  • os.path.isdir(path)#如果path是一个存在的目录,则返回True,否则返回False

  • os.path.getatime(path)#返回path所指向的文件或者目录最后存取的时间

用法案例:

案例1:分别获取绝对路径和文件夹

import os
print(os.getcwd())#C:UsershuhuanhuanPycharmProjectsstudy2017
print(os.path.abspath(__file__))#方法1获取文件的绝对路径C:UsershuhuanhuanPycharmProjectsstudy2017s1.py
print(os.path.abspath("s2.py"))#方法2获取文件的绝对路径C:UsershuhuanhuanPycharmProjectsstudy2017s2.py
print(os.path.dirname(os.path.abspath(__file__)))#获取文件所在的文件夹C:UsershuhuanhuanPycharmProjectsstudy2017
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))#C:UsershuhuanhuanPycharmProjects

效果:

案例2:获取绝对路径和上级文件夹

import os
base_dir=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print(os.path.abspath(__file__))
print(os.path.dirname(os.path.abspath(__file__)))
print (base_dir)

效果:

案例3:程序中常和sys结合使用,自动添加目录

案例4:os.rename('oldname','new')#重命名文件/目录

如果和程序在同一个目录,可以直接写文件名,如果不在同一目录,需要制定详细的路径。

案例5:os.chdir("dirname") 改变当前脚本的工作目录,相当于shell下的cd

2、SYS模块

    sys模块则是python程序用来请求解释器行为的接口。比如关于调试类的(trace, frames,except)等,profiling类(stats, getsizeof),运行时环境类(python path, stderr, stdout),解释器本身(如version)。inspect某种程度上可以看成是在sys提供的功能上的一个包装。

案例1:命令行参数List,第一个元素是程序本身路径,sys.argv[0]为脚本名称

import sys

print(sys.argv)

结果:

['C:/Users/.../PycharmProjects/study2017/s2.py']

案例2:返回python解释程序的版本信息

print(sys.version)

3.5.1 (v3.5.1:37a07cee5969, Dec  6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)]

案例3:模块查找目录优先级。

sys.path是python的搜索模块的路径集,是一个list

import sys
for item in sys.path:
print(item)

查找优先级:

案例4:假设s2不在系统的目录,则可以先添加,再导入s2文件:

import sys
sys.path.append('D:\')#导入D盘文件夹
import s2#文件名

使用sys.path.append(path)添加相关的路径,但在退出python环境后自己添加的路径就会自动消失!

如果需要更好地控制输出,而print 不能满足你的要求,则可使用标准的写入写出的功能;sys.stdout.write(),sys.stdout.flush()。

案例5:进度条案例:会显示1%一直变到100%

import time
import sys
def view_bar(num,total):
    rate=num/total
    rate_num=int(rate*100)
#d='r%d%%'%(rate_num,)#r代表重新回到当前行的首个位置,需要和时间停留配合使用,要么时针会有错,显示为一直变的数字,如17%
    d='r%s>%d%%'%("="*num,rate_num)#如果是此语句,则显示方式可以为=================>17%
   sys.stdout.write(d)
    sys.stdout.flush()

if __name__=='__main__':
for i in range(0,101):
        time.sleep(0.5)
        view_bar(i,100)

效果:

一直到100%

使用Api分析器与Windows兼容包来编写智能的跨平台.NET Core应用,api分析器

本文翻译自Scott Hanselman博客:

正文:

这是最近这几周你应该知道的一对.Net Core界的优秀工具。我们在编写或者移植跨平台代码时,它们非常有帮助。

Cheat : 一个实用 Linux 命令示例集合 | Linux 中国,cheatlinux

我们中的许多人经常查看 man 页面 来了解命令开关(选项),它会显示有关命令语法、说明、细节和可用的选项,但它没有任何实际的例子。因此,在组合成一个我们需要的完整命令时会遇到一些麻烦。-- Magesh Maruthamuthu

本文导航◈ Cheat 是什么10%◈ 如何安装 Cheat16%◈ 如何使用 Cheat62%编译自 |  
 作者 | Magesh Maruthamuthu
 译者 | geekpi

我们中的许多人经常查看 man 页面[1] 来了解命令开关(选项),它会显示有关命令语法、说明、细节和可用的选项,但它没有任何实际的例子。因此,在组合成一个我们需要的完整命令时会遇到一些麻烦。

你确实遇到这个麻烦而想要一个更好的解决方案吗?我会建议你试一下 cheat

Cheat 是什么

cheat[2] 允许你在命令行中创建和查看交互式的速查表cheatsheet。它旨在帮助提醒 *nix 系统管理员他们经常使用但还没频繁到会记住的命令的选项。

如何安装 Cheat

cheat 是使用 python 开发的,所以可以用 pip 来在你的系统上安装 cheat

pip 是一个与 setuptools 捆绑在一起的 Python 模块,它是在 Linux 中安装 Python 包推荐的工具之一。

对于 Debian/Ubuntu 用户,请使用 apt-get 命令[3]或apt 命令[4]来安装 pip

  1. [对于 Python2]

  2. $ sudo apt install python-pip python-setuptools

  3. [对于 Python3]

  4. $ sudo apt install python3-pip

RHEL/CentOS 官方仓库中没有 pip,因此使用 EPEL 仓库[5],并使用 YUM 命令[6]安装 pip

  1. $ sudo yum install python-pip python-devel python-setuptools

对于 Fedora 系统,使用 dnf 命令[7]来安装 pip

  1. [对于 Python2]

  2. $ sudo dnf install python-pip

  3. [对于 Python3]

  4. $ sudo dnf install python3

对于基于 Arch Linux 的系统,请使用 Pacman 命令[8] 来安装 pip

  1. [对于 Python2]

  2. $ sudo pacman -S python2-pip python-setuptools

  3. [对于 Python3]

  4. $ sudo pacman -S python-pip python3-setuptools

对于 openSUSE 系统,使用 Zypper 命令[9]来安装 pip

  1. [对于 Python2]

  2. $ sudo pacman -S python-pip

  3. [对于 Python3]

  4. $ sudo pacman -S python3-pip

用 pip 来在你的系统上安装 cheat

  1. $ sudo pip install cheat

如何使用 Cheat

运行 cheat,然后按相应的命令来查看速查表,作为例子,我们要来看下 tar 命令的例子。

  1. $ cheat tar

  2. # To extract an uncompressed archive:

  3. tar -xvf /path/to/foo.tar

  4. ``

  5. # To create an uncompressed archive:

  6. tar -cvf /path/to/foo.tar /path/to/foo/

  7. ``

  8. # To extract a .gz archive:

  9. tar -xzvf /path/to/foo.tgz

  10. ``

  11. # To create a .gz archive:

  12. tar -czvf /path/to/foo.tgz /path/to/foo/

  13. ``

  14. # To list the content of an .gz archive:

  15. tar -ztvf /path/to/foo.tgz

  16. ``

  17. # To extract a .bz2 archive:

  18. tar -xjvf /path/to/foo.tgz

  19. ``

  20. # To create a .bz2 archive:

  21. tar -cjvf /path/to/foo.tgz /path/to/foo/

  22. ``

  23. # To extract a .tar in specified Directory:

  24. tar -xvf /path/to/foo.tar -C /path/to/destination/

  25. ``

  26. # To list the content of an .bz2 archive:

  27. tar -jtvf /path/to/foo.tgz

  28. ``

  29. # To create a .gz archive and exclude all jpg,gif,... from the tgz

  30. tar czvf /path/to/foo.tgz --exclude=*.{jpg,gif,png,wmv,flv,tar.gz,zip} /path/to/foo/

  31. ``

  32. # To use parallel (multi-threaded) implementation of compression algorithms:

  33. tar -z ... -> tar -Ipigz ...

  34. tar -j ... -> tar -Ipbzip2 ...

  35. tar -J ... -> tar -Ipixz ...

  36. ``

运行下面的命令查看可用的速查表。

  1. $ cheat -l

进入帮助页面获取更多详细信息。

  1. $ cheat -h

via: 

作者:Magesh Maruthamuthu[11] 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

LCTT 译者geekpi ? ?共计翻译:623 篇贡献时间:1530 天

推荐文章

< 左右滑动查看相关文章 >

点击图片、输入文章 ID 或识别二维码直达

原文链接请访问“原文链接”获得可点击的文内链接、全尺寸原图和相关文章。

中小企业及创业团队云上监控方法

小鱼儿玄机30码姐妹 1

创业团队往往人少,强调效率,强调速度,所以一般会选择使用公有云来部署业务,基于云的监控是一个难点,本文讨论创业团队云上监控的方法。

要分享这个题目,是因为前几天我有个朋友,刚好就在一个创业团队,他们的业务初步上线,效果比较好,但是有几次业务出现问题,都是收到用户反馈,然后才去排查,从发现到处理完成,时间已经很长了。经过几次折腾,这时候才意识到监控的重要性。

为了快速解决问题,他们使用了商业监控方案,效果不错,用了一周就完成了系统及业务层面比较全面的监控,能做到业务有问题及时短信、邮件报警,然后快速处理。监控系统上来之后,明显缩短了业务故障的处理时间,提升了用户的满意度。

本文讨论以下几个问题:

那些企业适合使用公有云

公有云监控的难点在那里

云上业务应监控那些方面

云上业务监控的方法介绍

中小企业云上监控的建议

那些企业适合使用公有云

云计算的概念热了好几年了,云计算、虚拟化对互联网行业来说已经是标配。互联网行业现在都是使用各种云,或者使用公有云,或者自己搞私有云。大部分企业使用的是混合云,即私有云、公有云一起使用,而且即使使用公有云,也会选择多家使用。

传统行业现在也在积极拥抱云计算,各个行业都在将自己的业务和互联网结合,向“互联网 ”转变。

最开始拥抱公有云的是中小创业团队,尤其是手游页游兴起的时候,云确实解决了中小创业团队的痛点,不需要自己买服务器,自己建设数据中心,自己部署网络。

中小创业团队本来人力、资源紧张,云降低了他们的门槛,使他们可以专注自己的业务。初创的云计算公司和中小创业团队,一起抱团,开始了云计算行业的第一波使用热潮,目前这股热潮还在继续。

云计算是目前火热的创业浪潮的加速剂,使创业变的更简单,门槛更低。甚至,许多企业已经养成了习惯,公司做大了,上市了,还继续使用云,因为确实从云上尝到了甜头。国外还有一些例子,经历从云到自建,再到完全纯云化的过程。

但是,企业上云只是第一步,业务在云上跑得如何,稳定不稳定,出了问题如何及时发现,只有及早的发现,甚至预警,才能尽量减少业务的影响时间和范围,整个环节要依赖许多技术手段,监控就是其中最重要的环节之一。

公有云监控的难点在那里

第一个难点,公有云服务商不可能提供完善的监控手段

从宿主机层面监控云主机要做到准确很难,CPU利用率、网络、磁盘IO,能做到近似准确,但是更细节的信息是没有办法看到的,比如到底是那个应用使用CPU较多,更别说应用层面指标的监控。

而且即使目前公有云上提供的这些简单的CPU、网络、磁盘监控,都是有时间限制的,从7天到30天不等,因为存储长期的数据,会消耗公有云运营商大量的存储空间。

第二个难点,公有云服务器即使能提供完善的监控服务,用户也很顾忌

公有云要提供完善的监控数据,必须在云主机内部安装客户端程序,用户一般都这个都很顾忌,公有云服务商也会很顾虑。

理论上,从宿主机上获得正在运行的云主机上的数据,难度很低,何况还安装一个客户端,大部分用户是不放心的,前段时间,某云安装在用户云主机内部的客户端出现问题,更是一个佐证。

第三个难点,用户要实施监控,成本也比较高

使用云的以中小企业居多,这些企业的特点就是开发人员是个位数,运维是开发兼任,最多一个人。这时候运维的主要职责是业务的部署,业务跑得稳定最重要,对系统、业务的监控只能做到很初级的监控,很难做到非常细致的监控。

云上业务应监控那些方面

企业实施在云部署业务,需要监控以下几个方面的内容:

1. 云服务器商的网络质量情况

这一点最容易被忽视,许多企业以为选择了公有云,网络质量这里就万事大吉了,放到公有云上面的业务,肯定是要依赖网络来开展服务,有些业务对网络质量是非常敏感的,大部分云不提供网络质量监控的,建议上云的企业,对网络质量的监控也要重视起来。

2. 云主机系统层面的监控

云主机系统层面监控包括云主机的健康状况及CPU、内存、网络、磁盘使用情况,监控云主机主要是为了以下几个方面:

§ 监控云主机是否正常运行,如果云主机宕机及时发现;

§ 监控云主机的压力情况,如果压力超过阀值,及时做出调整;

§ 监控云主机的使用情况,如果长期压力过低,应对业务进行压缩,节省成本。

3. 业务层面的监控

经常会碰到,云主机运行正常,但是业务出现问题,可以分为以下几种情况:

业务进程僵死;

业务遇到性能瓶颈,比如读写太多,数据库不能支撑,这时候往往在系统层面的指标也可能有反应;

业务逻辑层面的预定瓶颈,比如业务一个进程逻辑上只能支撑1024个链接,当超过1000链接以上,业务就不能对外提供服务;

触发程序bug。

如果对业务层面没有细致的监控,往往业务出现问题很长时间,才能发现,监控就是我们的眼睛和雷达,对业务指标监控的越细,越有利于我们发现问题,也越有利于我们根据历史的监控数据排查问题,避免下次再发生同样的情况。

云上业务监控方法介绍

我们知道业务的监控非常重要,那么监控方法有那些:

1. 使用开源工具,网络质量监控方面,可以使用开源的SmokePing,系统和业务方面,目前国内比较流行的是Zabbix,也有其他监控工具,比如Cacti等。这些工具的共同特点是:

开源免费;

学习曲线比较陡峭,一般要熟练使用需要一到两年时间;

功能上能满足基本的需要,但是要监控更细致的指标,一般需要二次开发;

很难和自己已有的其他系统整合,要整合需要二次开发。

2. 使用商业服务

国内目前在监控商业化方面做的比较好的就是监控宝了,可以申请免费试用。

网络质量方面,监控宝有全球的网络质量监控:

小鱼儿玄机30码姐妹 2

也有国内的网络质量监控:

小鱼儿玄机30码姐妹 3

监控宝有自己固定的节点,不像使用SmokePing,还需要自己找各地的IP地址,而且自己找的IP地址经常会出现ping不通的问题。

云主机系统层面的监控方法,监控宝有针对云主机专用的解决方案。

小鱼儿玄机30码姐妹 4

甚至还能监控Docker虚拟机:

小鱼儿玄机30码姐妹 5

监控宝的云主机监控对用户来讲非常简单,一键安装监控端,很快就可以出图,默认就包括非常完善的指标。

比如网络质量就分为全世界和中国的:

小鱼儿玄机30码姐妹 6

小鱼儿玄机30码姐妹 7

性能方面CPU、内存、网络、磁盘使用情况指标都有:

小鱼儿玄机30码姐妹 8

也可以非常方便的根据自己的需要,自定义自己的业务监控指标:

小鱼儿玄机30码姐妹 9

还可以自定义报警模版及报警方式:

小鱼儿玄机30码姐妹 10

另外,监控宝还有API,可以方便的和自己的其他业务系统整合起来,还有手机上的APP,在手机上也可以随时了解自己的业务情况。

中小企业云上监控的建议

很多人认为已经有开源的解决方案就没有必要使用商业方案,其实中小企业非常适合使用商业方案,好处如下:

花钱买效率,商业的解决方案非常完善,几天之内就可以完成部署和使用,而使用开源方案,需要不断的打磨,周期是以年为单位的,并且随着业务不停的变化,实际是一个长期过程;

不用过多考虑人的因素,好不容易企业培养起来一个开源监控熟练手,结果离职了,然后一切又要从头开始;

我的朋友就是使用商业方案,比较好的解决了自己的问题。当然,如果运维开发工程师比较多了,自己的业务规模已经非常大,大到需要构建自己的私有云,这时候可能就需要根据业务的需求,开发一套满足自己需要的监控系统。

创业团队往往人少,强调效率,强调速度,所以一般会选择使用公有云来部署业务,基于云的监控是一个...

本文由小鱼儿玄机30码发布于小鱼儿玄机30码姐妹,转载请注明出处:它会显示有关命令语法、说明、细节和可用的选

关键词: 小鱼儿玄机30码