码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【python的输入】sys.stdin与sys.argv


    在老师的课堂里碰到了sys.stdin与sys.argv,虽然是很简单的东西,还是花了大半天的时间才勉强理解。在这里记录一下学习过程,方便以后用到复习。

    一、sys.stdin

    根据python3 library里的解释, sys.stdin可用于所有交互式的输入。
    代码底层的逻辑不懂,这里仅记录下该方法的使用:

    下面这段代码的意思是:导入sys模块,然后调用sys.stdin方法接收外部输入,将输入的每一行打印出来。

    >>> import sys
    >>> for line in sys.stdin:
    	print(line)
    
    • 1
    • 2
    • 3

    在命令行或者python shell中执行以上代码,程序运行如下:
    在这里插入图片描述
    其中红框里黑色文字是键盘输入,蓝色文字是python shell的输出。

    如果想终止输入,使用 Ctrl+D 即可。(但是,在我的电脑里Ctrl+D似乎只在Python Shell里生效,在命令行里使用没效果,只能用Ctrl+C强制终止执行)
    在这里插入图片描述

    二、sys.argv

    “argv” 即 “argument value” 是一个列表对象,它可以允许你的程序从终端读取参数列表。通常用于让程序从终端读取文件名,而不是将其写入 Python 代码中。
    这篇代码里有对sys.argv读取默认文件夹中的文件信息的说明。如果在命令行使用sys.argv可参考如下操作:

    1. 写一个lec4_mystery.py文件,其中的代码如下。该程序的作用是通过sys.argv从命令行接收一个列表List,然后输出整个列表、列表的长度,以及列表的第一个元素。
    List = sys.argv
    
    print(List)
    print('Total argument passed: '+ str(len(List)))
    print('Name of Python script: '+ List[0])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 在命令行执行如下语句
    python lec4_mystery.py 2 3 5 6
    
    • 1

    输出如下:

    ['lec4_mystery.py', '2', '3', '5', '6']
    Total argument passed: 5
    Name of Python script: lec4_mystery.py
    
    • 1
    • 2
    • 3

    可知生成的列表里,第一个元素是是执行的python文件的文件名,后面才是输入的数据。

    另外,sys.argv也可用于在命令行接收输入的文件:

    1. 创建一个lec4_mystery.py文件,其中的代码如下。该程序的作用是通过变量myfile传入一个文档,依次读取文档的每一行,分词,并输出以"s"结尾的单词。
    myfile = sys.argv[1]
    for line in open(myfile, "r"):
        for w in line.split(" "):
            if w.endswith("s"):
                print (w)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 在命令行输入如下指令:
    python lec4_mystery.py lec4_trial_file.txt
    
    • 1

    其中,lec4_trail_file.txt的内容如下,
    在这里插入图片描述
    执行后,命令行输出如下:
    在这里插入图片描述

  • 相关阅读:
    flowable相关的一些名词说明
    搜维尔科技:【工业仿真】煤矿安全知识基础学习VR系统
    谁能想到Java技术能跟看小说一样学习,不知不觉就看完了,膜拜大老!
    阿里云张新涛:连接产业上下游,构建XR协作生态
    SpringBoot 过滤器代理请求,增加设置请求参数的函数 setParameter
    Java中的Listener和Adapter
    计算机毕业设计之儿童图书商城
    第九章(1):循环神经网络与pytorch示例(RNN实现股价预测)
    产品经理基础--01认识产品经理
    php开发工具PhpStorm V2022.2正式发布——支持Mockery 和 Rector
  • 原文地址:https://blog.csdn.net/MilkLeong/article/details/133523106
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号