程序通过输入接受待处理的数据;然后执行相应的处理;最后通过输出返回处理结果 Python程序通常可以使用下列方式之一实现交互功能; 命令行参数是Python语言的标准组成。用户在命令行中python程序之后输入的参数,程序中可以通过列表 按惯例,命令行输入参数 运行结果: 使用Python内置的输入函数 如果程序在运行时,需要提示用户输入密码,则可以使用模块 运行结果 文件可以看作数据的集合,一般保存在磁盘或其他存储介质上。 内置函数 使用open()函数,可以指定打开文件的模式mode为: 文件操作函数容易发生异常,而且最后需要关闭打开的文件。故一般使用 通过内置函数 文本文件对象是可迭代对象,也可以使用 运行结果: 文件对象支持使用 运行结果: 在程序启动时,Python自动创建并打开三个文件流对象: 使用 程序可以从输入流(sys.stdin)中读取数据直至输入流为空。理论上,输入流的大小没有限制。现代操作系统通常使用组合键 与使用命令行参数对比,标准输入允许用户与程序进行交互(使用命令行参数时只能在程序运行前为程序员提供数据),且可读大量数据(使用命令行参数时有长度限制)。 使用标准流输入还可以通过操作系统系统重定向标准输入的源(例如文件或其他程序的输出),从而实现输入的灵活性 运行结果: 通过设置 恢复标准输入,输出和错误流为默认值的代码如下: 标准输入和标准输出对应与输入和输出流。,默认情况下,键盘是标准输入流,显示屏是标准输出流。因此,默认情况下,标准输入来自键盘的输入,而将标准输出结果发送到显示屏。 通过在执行程序的命令后面添加重定向指令,可以将标准输出重定向到一个文件。程序将标准输出的结果写入到指定文件,可以实现永久存储。 其目的是将显示屏从标准输入中分离,并将 通过在执行程序的命令后面添加重定向指令,可以实现程序从文件读取输入数据,以代替从控制台程序中输入数据 其目的是将控制台键盘从标准输入中分离,并将 重定向文件到输入的功能可以实现 通过管道操作,可以指定一个程序的输出为另一程序的输入。即将一个程序的标准输出与另一个程序的标准输入相连,这种机制称为 其目的是 使用管道更加简洁优雅,且不用创建中间文件,从而消除了输入流和输出流可以处理的数据大小的限制我,执行效率更高 现代操作系统中,使用管道作为命令机制可以将多个程序串联起来,每个程序可以视为一个过滤器,过滤器通过某种形式将标准输入流转换为标准输入流输入和输出
输入和输出概述

命令行参数
sys.argv与命令行参数
sys.argv访问命令行参数。argv[0]为脚本名,argv[1]为第一个参数,argv[2]为第二个参数,以此类推argv[1]、argv[2]等为字符串,所以如果希望传入的参数为数值,则需要使用转换行数int()或float(),将字符串转换为适合类型。import sys, random n=int(sys.argv[1]) for i in range(n): print(random.randrange(0,100)) PS C:UsersAdministratorDesktopTestpypy3> python .test.py 10 30 93 6 64 55 8 32 64 48 72 argparse模块和命令行参数解析
argparse模块是用于解析命令的命令行参数,生成帮助信息的Python标准模块。使用argparse模块的基本步骤如下:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--length',default=10,type=int,help='长度')
args = parser.parser_args()
args #输出:Namespace(length=10)标准输入和标准输出函数
input和输出函数print,可以使程序与用户进行交互
input函数格式为:input([prompt])
input函数提示用户输入,并返回用户从控制台输入的内容(字符串)
print函数格式:print(value,...,sep=' ',end='n',file='sys.stdout',flush=False)
print函数用于打印一行内容,即将多个以分隔符(sep,默认为空格)分隔的值(value,…,以逗号分隔的值)写入到指定文件流(file,默认控制台sys.stdout)。参数end指定换行符,flush指定是否强制写入到流>>> print(1,2,3) 1 2 3 >>> print(1,2,3,sep=',') 1,2,3 >>> print(1,2,3,sep=',',end='.n') 1,2,3. >>> for i in range(5):print(i,end=' ') ... 0 1 2 3 4 >>> >>> 运行时提示输入密码
getpass,以保证用户输入的密码在控制台不回显。getpass模块包含以下两个函数;getpass.getpass(prompt='Password',stream=None) #提示用户输入密码并返回 getpass.getuser() #获取当前登录用户名 #如果系统不支持不回显,则getpass将导致getpass.GetPassWarning import getpass username=input('username: ') password=getpass.getpass('Please enter password: ') if username=='mochu7' and password=='m0c1nu7': print('Login successful!') else: print('Login failure!') PS C:UsersAdministratorDesktopTestpypy3> python .test.py username: mochu7 Please enter password: Login successful! PS C:UsersAdministratorDesktopTestpypy3> python .test.py username: mochu7 Please enter password: Login failure! PS C:UsersAdministratorDesktopTestpypy3> 文件和文件对象
文件对象和open函数
open()用于打开或创建文件对象,其语法格式如下:
f=open(file,mode='r',buffering=-1,encoding=None)
其中file是要打开或创建的文件名,如果不在当前路径,需指出具体路径;mode是打开文件的模式;buffering表示是否使用缓存(默认-1,表示使用系统默认缓冲区大小);encoding是文件编码。open()返回一个文件对象fr(只读)、w(写入,写入前删除旧的内容)、x(创建新文件,如果文件存在,则导致FileExistsError)、a(追加)、b(二进制文件)、t(文本文件,默认值)、+(更新,读写)try.......except........finally语句,在try语句块中执行文件相关操作,使用except捕获可能发生的异常,在finally语句块中确保关闭打开的文件try: f=open(file,mode)#打开文件 except:#捕获异常 #发生异常时执行的操作 finally: f.close()#关闭打开的文件 文件的打开、写入、读取和关闭
open()可创建或打开文件对象;通过文件对象的实例方法write/weitelines,可写入字符串到文本文件;通过文件对象的实例方法read/readline,可以读取文本文件的内容;文件读写完成后,应该使用close方法关闭文件。for循环语句遍历所有的行import sys filename=sys.argv[0] #所读取并输出的就是本程序文件test.py f=open(filename,'r',encoding='utf-8') #打开文件 line_no=0 while True: line_no+=1 #统计行号 line=f.readline() #读取行信息 if line: print(line_no,":",line) #输出行号和该行内容 else: break f.close() #关闭打开的文件 PS C:UsersAdministratorDesktopTestpypy3> python .test.py 1 : import sys 2 : 3 : filename=sys.argv[0] #所读取并输出的就是本程序文件test.py 4 : f=open(filename,'r',encoding='utf-8') #打开文件 5 : line_no=0 6 : while True: 7 : line_no+=1 8 : line=f.readline() 9 : if line: 10 : print(line_no,":",line) 11 : else: 12 : break 13 : f.close() with语句和上下文管理协议
with context [as var] 操作语句 with语句定义了一个上下文。执行with语句时,首先调用上下文对象context的__enter__(),其返回值赋值给var;离开with语句块时,最后调用context的__enter__(),确保释放资源with语句,确保打开的文件自动关闭;whti open(file,mode) as f: #操作打开的文件 import sys filename = sys.argv[0] #所读文件输出的就是本程序文件 line_no = 0 #统计行号 with open(filename,'r',encoding='utf-8') as f: #使用with语句实现上下文管理协议 for line in f: line_no += 1 #行号计数 print(line_no,":",line) #输出行号和该行内容 f.close() PS C:UsersAdministratorDesktopTestpypy3> python .test.py 1 : import sys 2 : 3 : filename = sys.argv[0] #所读文件输出的就是本程序文件 4 : line_no = 0 #统计行号 5 : with open(filename,'r',encoding='utf-8') as f: #使用with语句实现上下文管理协议 6 : for line in f: 7 : line_no += 1 #行号计数 8 : print(line_no,":",line) #输出行号和该行内容 9 : f.close() PS C:UsersAdministratorDesktopTestpypy3> 标准输入、输出和错误流
标准输入、输出、和错误流文件对象
标准输入流文件对象、标准输出流文件对象、错误流文件对象。sys模块的sys.stdin、sys.stdout、sys.stderr,可以查看对应的标准输入、标准输出和标准错误流文件对象。标准输入流文件对象默认对应控制台键盘。标准输出流文件对象和错误输出流文件对象默认对应于控制台,其区别仅在于后者是非缓冲的sys.stdout的对象方法write()用于输出对象的字符串表示到标准输出。事实上,print函数就是调用sys.stdout.write()方法>>> import sys >>> print("An error message",file=sys.stdout) An error message >>> sys.stdout.write('Another error messagen') Another error message 22 >>> 读取任意长度的输入流
Ctrl+D,指示输入流结束(也有操作系统使用组合键,Ctrl+Z,例如windows系统)import sys total = 0.0 count = 0 for line in sys.stdin: count += 1 total += float(line) avg = total / count print('平均值:',avg) PS C:UsersAdministratorDesktopTestpypy3> python .test.py 7 8 9 10 11 12 13 14 15 16 17 ^Z 平均值: 12.0 PS C:UsersAdministratorDesktopTestpypy3> 标准输入、输出和错误流重定向
sys.stdin、sys.stdout和sys.stderr,可以实现标准输入、输出和错误流重定向f = open('out.log','w') sys.stdout =f sys.stdin = sys.__stdin__ sys.stdout = sys.__stdout__ sys.stderr = sys.__stderr__ 重定向和管道
然而通过在控制台键盘输入数据,不适合大量数据的情况,且每次运行都需要重新输入数据。现代操作系统都提供了标准输入和输出的重定向功能,把标准输入和标准输出关联的默认设备改变为另一文件、一个网络、一个程序等。
通过重定向,可以实现标准输入和标准输出的抽象,并通过操作系统为标准输入或标准输出指定不同源。重定向标准输出到一个文件
程序 > 输出文件输出文件与标准输出关联,即程序的制定结果写入到输出文件,而不是发送到显示屏中显示PS C:UsersAdministratorDesktopTestpypy3> python .test.py >....test.txt PS C:UsersAdministratorDesktopTestpypy3> cd ../../ PS C:UsersAdministratorDesktopTest> type .test.txt 0 1 2 3 4 5 6 7 8 9 PS C:UsersAdministratorDesktopTest> 重定向文件到标准输入
程序 < 输入文件输入文件与标准输入流关联,即程序从输入文件中读取输入数据,而不是从键盘读取输入数据。数据驱动的代码,既不用修改程序,即可以实现处理不同数据文件。即将数据保存在文件中,通过编写程序从标准输入中读取数据管道
管道程序1 | 程序2 | ... | 程序n程序1的标准输出连接到程序2的标准输入。即将程序2标准输出连接到程序3的标准输入,依次类推过滤器
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
官方软件产品操作指南 (170)