【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)

在命令行或者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.argvprint(List)
print('Total argument passed: '+ str(len(List)))
print('Name of Python script: '+ List[0])
  1. 在命令行执行如下语句
python lec4_mystery.py 2 3 5 6

输出如下:

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

可知生成的列表里,第一个元素是是执行的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. 在命令行输入如下指令:
python lec4_mystery.py lec4_trial_file.txt

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/147913.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

音频编辑软件Steinberg SpectraLayers Pro mac中文软件介绍

Steinberg SpectraLayers Pro mac是一款专业的音频编辑软件,旨在帮助音频专业人士进行精细的音频编辑和声音处理。它提供了强大的频谱编辑功能,可以对音频文件进行深入的频谱分析和编辑。 Steinberg SpectraLayers Pro mac软件特点 1. 频谱编辑&#xff…

数据在内存中的存储(一个新手的理解)

目录 1.整数在内存中的存储 2.大小端字节序和字节序判断 2.1什么是大小端? 2.2为什么有大小端呢? 2.3那怎么知道编译器是什么存储呢? 2.4几个有趣的小练习 3.浮点数在内存中的存储 3.1练习 3.2浮点数的储存 3.2.1 浮点数存的过程…

【Java-LangChain:使用 ChatGPT API 搭建系统-4】评估输入-分类

第三章,评估输入-分类 如果您正在构建一个允许用户输入信息的系统,首先要确保人们在负责任地使用系统,以及他们没有试图以某种方式滥用系统,这是非常重要的。 在本章中,我们将介绍几种策略来实现这一目标。 我们将学习…

pytorch之nn.Conv1d详解

自然语言处理中一个句子序列,一维的,所以使用Conv1d

开启创意思维,畅享Mindomo Desktop for Mac思维导图之旅

在数字化时代,我们需要一个强大而直观的工具来整理和展现我们的思维。Mindomo Desktop for Mac(Mindomo)作为一款免费的思维导图软件,将为您提供卓越的创意思维体验。 Mindomo拥有直观的界面和丰富的功能,让您能够方便…

[React] Zustand状态管理库

文章目录 1.Zustand介绍2.创建一个store3.使用方法3.1 获取状态3.2 更新状态3.3 访问存储状态3.4 处理异步数据3.5 在状态中访问和存储数组3.6 持续状态 4.总结 1.Zustand介绍 状态管理一直是现代程序应用中的重要组成部分, Zustand使用 hooks 来管理状态无需样板代码。 更少…

JVM篇---第一篇

系列文章目录 文章目录 系列文章目录一、知识点汇总二、知识点详解:三、说说类加载与卸载一、知识点汇总 JVM是Java运行基础,面试时一定会遇到JVM的有关问题,内容相对集中,但对只是深度要求较高. 其中内存模型,类加载机制,GC是重点方面.性能调优部分更偏向应用,重点突出实践…

python二次开发CATIA:为选中元素上色

先打开一个零件文档,然后用鼠标选中元素,再运行如下python程序: import win32com.client import pywintypes # 导入pywintypes模块 import random # 启动CATIA应用 catia win32com.client.Dispatch(CATIA.Application) catia.visible1try:…

python中实现定时任务的几种方案

目录 while True: sleep()Timeloop库threading.Timersched模块schedule模块APScheduler框架Celery框架数据流工具Apache Airflow概述Airflow 核心概念Airflow 的架构 总结以下几种方案实现定时任务,可根据不同需求去使用不同方案。 while True: sleep() 利用whil…

【C++进阶(七)】仿函数深度剖析模板进阶讲解

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 模板进阶 1. 前言2. 仿函数的概念3. 仿函数的实…

【GO 编程语言】面向对象

指针与结构体 文章目录 指针与结构体一、OOP 思想二、继承三、方法 一、OOP 思想 Go语言不是面向对象的语言,这里只是通过一些方法来模拟面向对象,从而更好的来理解面向对象思想 面向过程的思维模式 1.面向过程的思维模式是简单的线性思维,…

C#学生选课及成绩查询系统

一、项目背景 学生选课及成绩查询系统是一个学校不可缺少的部分,传统的人工管理档案的方式存在着很多的缺点,如:效率低、保密性差等,所以开发一套综合教务系统管理软件很有必要,它应该具有传统的手工管理所无法比拟的…

visual studio禁用qt-vsaddin插件更新

visual studio里qt-vsaddin插件默认是自动更新的,由于qt-vsaddin插件新版本的操作方式与老版本相差较大,且新版本不稳定,容易出Bug,所以需要禁用其自动更新,步骤如下:     点击VS2019菜单栏上的【扩展】–…

ChatGPT启蒙之旅:弟弟妹妹的关键概念入门

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

Docker Alist 在线网盘部署

文章目录 拉取镜像创建并运行查看容器自动生成的密码在浏览器中进行访问 挂载本地磁盘 拉取镜像 docker pull xhofe/alist-aria2创建并运行 # -v /data/alist:/opt/alist/data 挂载本地目录 docker run -d --restartalways -v /data/alist:/opt/alist/data -p 5244:5244 -e P…

Linux系统常用指令篇---(一)

Linux系统常用指令篇—(一) 1.cd指令 Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。 语法:cd 目录名 功能:改变工作目录。将当前工作目录改变到指定的目录下。 (简单理解为进入指定目录下) 举例: cd .. : 返…

vscode 打开后 默认terminal power shell 报错 名为“.C”的驱动器不存在。

这是 默认terminal power shell 打开报的错 Test-Path : 找不到驱动器。名为“.C”的驱动器不存在。 所在位置 C:\Users\HUAWEI\Documents\WindowsPowerShell\profile.ps1:4 字符: 5 If (Test-Path "C:\Users\HUAWEI\AppData\Local\Temp\_MEI319962\Scripts\ ... …

python二次开发CATIA:文字轮廓草图

CATIA V5 版本的草图中,并没有文字轮廓的创建命令。通常的做法是,再Drawing 文件中创建所需文本-->将 Drawing 文件另存为 dwg / dxf 格式-->打开另存的文件,文字已转为轮廓线条-->复制线条并粘贴到草图中。 本例中,基于…

Hono——一个小型,简单且超快的Edges Web框架

Hono - [炎]在日语中的意思是火焰🔥 - 是一个小型,简单且超快的Edges Web框架。它适用于任何JavaScript运行时:Cloudflare Workers,Fastly ComputeEdge,Deno,Bun,Vercel,Netlify&…

【单片机】14-I2C通信之EEPROM

1.EEPROM概念 1.EEPROM 1.1 一些概念 (1)一些概念:ROM【只读存储器---硬盘】,RAM【随机访问存储器--内存】,PROM【可编程的ROM】,EPROM【可擦除ROM】,EEPROM【电可擦除ROM】 1.2 为什么需要EE…