精华内容
下载资源
问答
  • Python 脚本的三种执行方式

    万次阅读 多人点赞 2018-10-19 16:12:34
    1.交互模式执行 Python,这种模式下,无需创建脚本文件,直接在 Python解释器的交互模式下编写对应的 Python 语句即可。 1)打开交互模式的方式: Windows下: 在开始菜单找到“命令提示符”,打开,就进入到...

    1.交互模式下执行 Python,这种模式下,无需创建脚本文件,直接在 Python解释器的交互模式下编写对应的 Python 语句即可。
    1)打开交互模式的方式:
    Windows下:
    在开始菜单找到“命令提示符”,打开,就进入到命令行模式:
    在这里插入图片描述
    在这里插入图片描述
    在命令行模式输入: python 即可进入 Python 的交互模式
    在这里插入图片描述
    Linux 下:
    直接在终端输入 python,如果是安装了 python3 ,则根据自己建的软连接的名字进入对应版本的 Python 交互环境,例如我建立软连接使用的 python3,这输入 python3。
    在这里插入图片描述
    2)退出交互模式,直接输入 exit() 即可。
    Windows下:
    在这里插入图片描述
    Linux 下:
    在这里插入图片描述
    3)在交互模式下输出: Hello World!
    Windows:
    在这里插入图片描述
    Linux:
    在这里插入图片描述
    2.通过脚本输出
    通过文本编辑器,编写脚本文件,命名为 hello.py,在命令行模式下输入 python hello.py 即可
    Windows:
    在这里插入图片描述
    Linux:

    [Vicky@localhost code]$ touch hello.py
    [Vicky@localhost code]$ vi hello.py 
    [Vicky@localhost code]$ python3 hello.py 
    Hello World!
    

    这种方式,要注意脚本文件所在路径,如果当前工作路径和脚本文件不在同一路径下,则要进入 脚本文件所在路径,或者给出脚本文件的完整路径。
    1)进入脚本文件所在路径下执行

    C:\Windows\System32>G:
    G:\test>python hello.py
    Hello World!

    2)给出脚本文件的完整路径

    C:\Windows\System32>python G:\test\hello.py
    Hello World!

    3.在脚本文件中指定 python 程序所在路径,修改文件为可执行文件,然后直接运行文件
    Linux下:
    1)修改文件,添加 #!/usr/bin/python3

    [Vicky@localhost code]$ vi hello.py 
    [Vicky@localhost code]$ cat hello.py 
    #!/usr/bin/python3
    print("Hello World!")
    

    2)修改文件权限,添加可执行权限

    [Vicky@localhost code]$ chmod u+x hello.py 
    [Vicky@localhost code]$ ls -la hello.py 
    -rwxrw-r--. 1 Vicky Vicky 41 10月 19 15:40 hello.py
    

    3)运行

    [Vicky@localhost code]$ ./hello.py 
    Hello World!
    

    此种方式执行的时候,一定要在脚本文件中指定解释器,否则无法直接运行脚本文件

    [Vicky@localhost code]$ cat hello.py 
    print("Hello World!")
    [Vicky@localhost code]$ ls -la hello.py 
    -rwxrw-r--. 1 Vicky Vicky 22 10月 19 15:40 hello.py
    [Vicky@localhost code]$ ./hello.py 
    ./hello.py:行1: 未预期的符号 `"Hello World!"' 附近有语法错误
    ./hello.py:行1: `print("Hello World!")'
    

    4.交互模式和脚本文件方式的比较
    1)在交互模式下,会自动打印出运算结果,而通过脚本文件的方式不会
    交互模式:

    [fanya@localhost code]$ python3
    Python 3.6.5 (default, Oct 19 2018, 10:46:59) 
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 100+200
    300
    >>> exit()
    

    脚本文件:

    [fanya@localhost code]$ vi cal.py 
    [fanya@localhost code]$ cat cal.py 
    100+200
    [fanya@localhost code]$ python3 cal.py 
    [fanya@localhost code]$ 
    

    可见没有任何输出,此时要想输出,必须使用 print 函数进行打印。

    [fanya@localhost code]$ vi cal.py 
    [fanya@localhost code]$ cat cal.py 
    print(100+200)
    [fanya@localhost code]$ python3 cal.py 
    300
    [fanya@localhost code]$ 
    

    2)在交互模式下,每次输入的语句不会被保存,退出交互环境之后即消失,但是通过脚本文件我们可以保存我们写过的所有语句。所以通常都是通过编写 脚本文件的方式来编写 Python 代码。
    注意:在编写脚本文件的时候不要使用 word 和 windows 自带的笔记本,因为他们在保存的时候会保存为 utf-8 BOM 格式,这会导致脚本执行错误。可以使用 sublime,editplus,notepad++
    在这里插入图片描述

    声明:
    本博客的所有内容,仅是自己的一些学习笔记,如有错误,欢迎指正。如有侵权,请告知修改。

    展开全文
  • 1.交互模式执行 Python,这种模式下,无需创建脚本文件,直接在 Python解释器的交互模式下编写对应的 Python 语句即可。 1)打开交互模式的方式: Windows下: 在开始菜单找到“命令提示符”,打开,就进入到...
  • 今天再看python的项目时,发现GitHub中给出的python脚本执行格式是python -m pip install somepackage。于是开始了python模式启动之旅。 其中很多相关借鉴了该博客,同时感谢博主:...

    今天再看python的项目时,发现GitHub中给出的python脚本的执行格式是python -m pip install somepackage。于是开始了python模式启动之旅。

    其中很多相关借鉴了该博客,同时感谢博主:http://www.cnblogs.com/xueweihan/p/5118222.html

    • 什么是python启动模块:

    通过python启动一个库中的模块(python启动模块):

    python -m http.server    (python3中启动一个简单的http服务器)

    • 关于python的模块方式启动

    python 的启动方式(加载py文件方式)有两种:

     

    1. python xxx.py  -----直接运行的方式启动(此时脚本__name__为"__main__")
    2. python -m xxx.py  ------以模块的方式启动(此时脚本的__name__属性值依然不再是"__main__"而是"xxx")

    附:__name__ == "__main__"表示该脚本为程序的主入口,否则是以模块调用的形式运行。

    区别1:

    关于两种启动方式的差异,主要是所加载的系统路径不同(sys.path列表):(通过列子做了验证)

    在/home/spark/cluster-master/examples下建立test.py脚本,内容:

      import sys
      print(sys.path)

    1、直接运行:python test.py结果:

    ['/home/spark/cluster-master/examples', '/home/spark/cluster-master', '/data/lthpc/soft/caffe/python', '/opt/anaconda3/lib/python36.zip', '/opt/anaconda3/lib/python3.6', '/opt/anaconda3/lib/python3.6/lib-dynload', '/opt/anaconda3/lib/python3.6/site-packages', '/opt/anaconda3/lib/python3.6/site-packages/Sphinx-1.5.6-py3.6.egg', '/opt/anaconda3/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg', '/opt/anaconda3/lib/python3.6/site-packages/torchvision-0.1.9-py3.6.egg']
    

    2、以模块方式运行 :python -m test结果:

    ['', '/home/spark/cluster-master/examples', '/data/lthpc/soft/caffe/python', '/opt/anaconda3/lib/python36.zip', '/opt/anaconda3/lib/python3.6', '/opt/anaconda3/lib/python3.6/lib-dynload', '/opt/anaconda3/lib/python3.6/site-packages', '/opt/anaconda3/lib/python3.6/site-packages/Sphinx-1.5.6-py3.6.egg', '/opt/anaconda3/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg', '/opt/anaconda3/lib/python3.6/site-packages/torchvision-0.1.9-py3.6.egg']

    注意不同之处来了:直接运行后添加到path中的路径为”脚本所在路径“,而以模块方式运行后多了一个‘ ’,这个‘ ’符号代表python执行运行环境的当前路径(即为python的执行路径),就是这个‘ ’当前路径引出了import包时的很多问题。下面用例子说明:

    下面的例子我在服务器上没有验证成功,先姑且贴一下别人的例子:

    # 目录结构如下
    package/
        __init__.py
        mod1.py
    package2/
        __init__.py
        run.py  
    # run.py 内容如下
    import sys
    from package import mod1
    print(sys.path)

     

    两种启动:

     

    # 直接启动(失败)
    ➜  test_import_project git:(master) ✗ python package2/run.py
    Traceback (most recent call last):
      File "package2/run.py", line 2, in <module>
        from package import mod1
    ImportError: No module named package
    
    # 以模块方式启动(成功)
    ➜  test_import_project git:(master) ✗ python -m package2.run
    ['',
    '/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
    ...]

    启动成功与否的关键是在run.py脚本中的import 内容能否成功地加入到sys.path中。

    显然from package import mod1,在sys.path中存在' '当前路径的情况下是能够找到对应包的,而另一种方式找不到包,原因在于python 的模块搜索路径机制:

    区别2:

    • 当加上-m参数时,Python会先将模块或者包导入,然后再执行。

    假设我们有如下一个包package:

    package
    ├── __init__.py
    └── __main__.py

    __init__.py的内容

    import sys
    
    print("__init__")
    print(sys.path)

    __main__.py的内容

    import sys
    
    print("__main__")
    print(sys.path)

    使用python -m package运行,输出结果:

    __init__
    ['', ...]
    
    __main__
    ['', ...]

    使用python package运行,输出结果:

    __main__
    ['package', ...]

    这里涉及到__main__为名称的模块,__main__.py文件是一个包或者目录的入口程序。不管是用python package还是用python -m package运行,__main__.py文件总是被执行。 

     

    在一个模块被导入时,PVM会在后台从一系列路径中搜索该模块,其搜索过程如下:

    1、在当前目录下搜索该模块;

    2、在环境变量PYTHONPATH中指定的路径列表中依次搜索;

    3、在python安装路径中搜索

          事实上,PVM通过变量sys.path中包含的路径来搜索,这个变量里面包含的路径列表就是上面提到的这些路径信息。

     

    展开全文
  • 我们用scala来编写来spark,这次我们用python来写spark脚本,我们在上篇博客中说过,spark的版本是2.2.0,scala的版本是2.1.x,这样我们在集群中,由于spark的版本,没有办法使用pySpark wordcount.py 来执行脚本,...

    上次,我们用scala来编写来spark,这次我们用python来写spark脚本,我们在上篇博客中说过,spark的版本是2.2.0,scala的版本是2.1.x,这样我们在集群中,由于spark的版本,没有办法使用pySpark wordcount.py 来执行脚本,只能使用spark submit wordcount.py来执行脚本,在Linux环境是这样执行的,但是我们写脚本,可以直接在Linux上vim,也可以使用pyCharm或是IDEA,其实pyCharm和IDEA使用的效果是一样的,这里我们就主要讲解下如何使用PyCharm来编写好代码,远程放到Linux主机执行和在Pycharm中本地执行的两种方法。

    在讲解两种方法之前,先说明一下我本地的pyCharm不管是运行环境还是远程到Linux主机,用的都是Linux上的解释器进行运行代码的,如果不知道怎么远程配置,可以看下我的博客:https://blog.csdn.net/Jameslvt/article/details/81559459,pycharm远程配置,下面是我本地解释器的截图:

    一、本地pyCharm开发,远程上到到Linux配置

    由于我们是在本地开发,并没有Linux环境里面的spark环境和hadoop环境,所以我们需要配置一点东西,首先我们把spark安装包解压到本地,如下:由于我这里是mac,大家解压到D,E盘自己知道的地方即可,为什么要解压这个,因为这个文件夹里面有python文件,python文件下还有两个压缩包py4j-some-version.zip和pyspark.zip,之后会用到

     然后我们来配置pyCharm

    随便打开一个project,pycharm右上角“run”三角形的左边有一个configurition,打开它。

    打开后,我们需要做下面三步,

    1、随便加一个python的运行config,填上名称

    2、随便选择一个类

    3.这一步比较重要,添加变量,切记不能有空格,出现框框,点击+,输入两个name,一个是SPARK_HOME,另外一个是PYTHONPATH,设置它们的values,SPARK_HOME的value是安装文件夹spark-2.2.0-bin-hadoop2.6的绝对路径,PYTHONPATH的value是该绝对路径+/python,例如我的SPARK_HOME的value是/Applications/spark/spark-2.2.0-bin-hadoop2.6,那么我的PYTHONPATH的value是/Applications/spark/spark-2.1.1-bin-hadoop2.7/python 。设置好了保存。

    接下来这一步也比较关键:在perferences中的project structure中点击右边的“add  content root”,添加py4j-some-version.zip和pyspark.zip的路径(这两个文件都在Spark中的python文件夹下)

    添加好了以后,会在工程里出现两个包:

    这样,接下来我们写代码from pyspark import SparkContext,SparkConf 就不会报错了,当我们配置了远程以后,代码会自动上传到远程主机Linux主机,这时候,我们需要在Linux主机进行spark环境变量的配置,也就是修改环境变量:加上sparkhome和python的,其实这里不加python行不行,我没有尝试,大家可以尝试一下,因为我用到anaconda,必须引入这个环境变量,所以大家可以尝试一下,改完记得source一下,生效

    环境变量配置完毕,我们可以直接到我们上传的代码那里直接执行代码:

    那么远程Linux主机的介绍就到这里,接下来我们说一下在宿主机pyCharm调试

    二、在pyCharm或IDEA中调试

    这个调试关键是要用到远程的解释器,就是下面这个配置:

    我的一切运行都是基于这个配置,要是想直接在本地的控制台调试,只需在代码中加入两个包,也就是我们第一个里面导入的两个包,但是这两个包是Linux环境下的位置,因为我们用的是Linux下的解释器,用远程执行方式的好处就是本地不需要配置那么多复杂的环境量,导致本地乱七八糟的。

    然后直接运行即可。

     

    另外,如果大家觉得我这个麻烦,可以看看这篇文章配置:

    https://note.youdao.com/share/?id=fb511e558fae98fe6ca2f81d7a55316a&type=note#/

    展开全文
  • python脚本

    2016-11-04 16:03:26
    本项目为日常工作中的使用的python脚本 1. ssh_thread.py 是一个批量执行命令的脚本,支持直接执行ssh命令及文件传输,支持多线程 使用说明如下: -h,-H,--help 帮助页面 -C, --cmd 执行命令模式 -M, --...
  • 脚本 HoneyPi是基于Raspberry Pi的测量系统。 这是一个开放源代码框架,允许每个养蜂人监视他的蜜蜂。 数据传输发生在物联网平台ThingSpeak。 测量数据在养蜂场收集并在应用程序中可视化。 安装 只需几个命令,就...
  • Mac下定时执行python脚本&sh脚本

    千次阅读 2017-10-18 13:52:15
    2.保存,退出,脚本即可按照指定的时间去执行脚本注意: (1)时间的格式 * * * * * command 分 时 日 月 周 命令 第1列表示分钟1~59 每分钟用或者 /1表示 第2列表示小时1~23(0表示0点) 第3列...

    步骤:
    1.crontab -e进入当前用户的定时任务编辑模式:
    分 时 日 月 周 解释器绝对路径 脚本绝对路径
    2.保存,退出,脚本即可按照指定的时间去执行脚本

    注意:
    (1)时间的格式
    *  *  *  *  *  command
    分 时 日 月 周 命令
    第1列表示分钟1~59 每分钟用或者 /1表示
    第2列表示小时1~23(0表示0点)
    第3列表示日期1~31
    第4列表示月份1~12
    第5列标识号星期0~6(0表示星期天)
    5个*表示每分钟
    *表示每分钟/时/日/月/周
    */n表示每隔n分钟/时/日/月整/周
    每个时间位多个数值用逗号隔开:* * * * 0,1,2,3,4,5就表示除了周六以外的每一分钟
    即记住几个特殊符号的含义:

         “*”代表取值范围内的数字,
    
         “/”代表”每”,
    
         “-”代表从某个数字到某个数字,
    
         “,”分开几个离散的数字
    

    1-10 16 * * 1-5 :周一到周五的每天16点的前10分钟
    (2)一些小例子
    /2 * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh
    上面的例子是每隔2min执行一次上面的shell脚本
    30 21 * * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每晚的21:30重启apache。
    45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每月1、10、22日的4 : 45重启apache。
    10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每周六、周日的1 : 10重启apache。
    0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
    0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每星期六的11 : 00 pm重启apache。
    * /1 * * /usr/local/etc/rc.d/lighttpd restart
    每一小时重启apache
    * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
    晚上11点到早上7点之间,每隔一小时重启apache
    0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
    每月的4号与每周一到周三的11点重启apache
    0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
    一月一号的4点重启apache

    (3)解释器的绝对路径:
    which+python3 ===> /usr/local/bin/python3
    which+osascript ===> /usr/bin/osascript
    which+sh=========>/bin/sh

    (4)crontab的一些参数
    ps aux | grep cron :查看服务是否已经运行用
    crontab -e:编辑当前用户crontab任务,保存退出后自动加到crontab列表中执行
    crontab -l :查看当前用户所有crontab 列表
    crontab -r :删除当前用户所有crontab 列表

    (5)禁止Crontab产生邮件(默认每执行一次发一封邮件)
    方法一:在每一条crontab命令末尾加上

    /dev/null 2>&1.
    或者&> /dev/null
    例如:
    0 1 5 10 * /path/to/script.sh >/dev/null 2>&1
    0 1 5 10 * /path/to/script.sh &> /dev/null

    方法二:另外一种方法是编辑crontab
    crontab -e
    在第一行加入
    MAILTO=””
    保存退出
    这样做的好处是,可以避免 /var/mail/root 体积快速增长

    展开全文
  • 如何使python脚本运行在daemon模式

    千次阅读 2018-01-02 14:58:30
    有一个很好的库可以完成这一功能,可惜因为文档少所以网上例子不太多库名:python-daemon可以通过Pip来安装最简单的使用方式import daemon with daemon.DaemonContext(): print "your code"当然代码块中最好放一个...
  • 这里写自定义目录标题在命令行中执行python脚本文件,文件中代码如果用中文写的,执行时会报错 在命令行中执行python脚本文件,文件中代码如果用中文写的,执行时会报错 如下python代码: print("hello world") 当...
  • linux下的定时任务 Python 运行 : crontab - e 进入编辑模式: * * * * * python /etc/task/run.py >...1.不能写脚本的名字, 必须在脚本前加上python , 如果还是不行运行, 那就写上python的完整脚本 例如: ...
  • 小型python脚本,使用模式搜索更改以过滤git diff HEAD~ 。 主要目标是使构建流程更快地在构建项目/服务之前检查更改。 找到更改后,脚本以0退出,否则以1退出。 如果脚本收到command ,它将被执行并以command...
  • 终端中输入命令python -i test.py运行脚本,脚本执行打印出“Hello”后直接进入了与解释器的交互模式中,在这个上下文环境中,可以直接使用脚本中定义的变量函数。示例如下: $ python -i test.py Hello >>&...
  • exec()函数用来执行一个外部程序,我们在用这函数基本是在linux 开启: exec()函数是被禁用的,要使用这个函数必须先开启 (1) 修改php.ini文件关掉安全模式 safe_mode = off (2) 然后在看看 禁用函数列表disable_...
  • 作为Python开发人员构建所需的最重要技能之一是能够运行Python脚本和代码。这将是了解代码是否按计划运行的唯一方法。这甚至是了解代码是否正常工作的唯一方法! 本文涉及如下四种运行python代码的方式: 操作系统...
  • 如何用命令行运行python脚本

    万次阅读 多人点赞 2018-02-17 22:27:09
    (emmmmmm,最近发现自己的记忆力越来越不行了,新学的python很多地方记不住啦,所以开始记录一些简单的东西)一直在想如何像大佬一样用命令行执行脚本,终于大年初一晚上搞明白了。首先区分一下注意区分命令行模式...
  • Python脚本之三种运行方式

    千次阅读 2019-09-23 15:26:31
    一、交互模式执行 Python 这种模式下,无需创建脚本文件,直接在 Python解释器的交互模式下编写对应的 Python 语句即可。 1)打开交互模式的方式: Windows下:在开始菜单找到“命令提示符”,打开,就进入到...
  • Centos7 启动 python脚本

    2020-02-11 18:59:37
    假设文件夹\home\sks\python3_crawl下面有个test.py 文件 打开terminal终端:转到root模式 进入cd /hom/sks/python3_crawl 执行python2 test.py
  • 使用python2 在windows cmd 执行python脚本发生乱码的解决方法 可以先把中文解码为unicode,然后再转化为gbk显示正常,需要在代码打印中文处添加 print(':这是一段中文字'.decode('utf-8').encode('gbk')) 复制...
  • Python中调用pig语句的执行方法: 通过三个shell核命令可以 os.system(‘执行的文件,可以是’) ...1. 输入python,进入解释器模式。 2. Import os 3. 执行os.system(‘test.sh’) 其中test.sh的内容为 pig –xl
  • 就在自己的家目录下演示吧 cd /home/自己的家目录 #进入家目录 ...生成 .sh 可执行脚本 touch do.sh vim do.sh i 键进入编辑模式 #!/bin/sh echo "Hello linux" Esc + :wq (保存并退出) ./do.sh 即可输
  • 直接上python脚本: 2.我是把这个脚本放在home文件夹下面 3.在centos命令模式下: crontab -e 命令编辑启动脚本: 4.第一个命令意思是:每天9点到下午5点,每隔一个小时 执行一次home文件夹下的 xiuxi.py...
  • 一、交互模式执行 Python 这种模式下,无需创建脚本文件,直接在 Python解释器的交互模式下编写对应的 Python 语句即可。 1)打开交互模式的方式: Windows下:在开始菜单找到“命令提示符”,打开,就进入到...
  • 背景知识,某次使用HTMLTestRunner的时候,发现一直...二:python运行脚本的三种模式 三:如何修改脚本运行的模式呢? 方法一:修改pycharm默认的测试框架 方法二:设置运动脚本时候的默认框架 四:main()函数有...
  • cmd命令行模式执行: pip install pyinstaller pip install pyinstaller -i https://pypi.douban.com/simple 执行结果: 'pyintaller' 不是内部或外部命令,也不是可运行的程序 1)检查pyinstaller安装...
  • 1.进入anaconda ...选择选项open with python 这时已经进入python 交互模式终端 ...(交互模式启动python解释器,每输入一行就执行一行) 如果要退出交互模式可以Ctrl+z,然后回车(windows系统) ...
  • 使用Python脚本挖掘GitHub的问题+注释并使用对它们进行分类。 我们的工具可自动执行针对特定问题的GitHub查询并将其输入分类模型的过程。 它支持交互式和非交互式模式。 设置: 确保已安装Python 3.9.1和对应的pip...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 622
精华内容 248
关键字:

python脚本执行模式

python 订阅