程序通过输入接受待处理的数据;然后执行相应的处理;最后通过输出返回处理结果 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()返回一个文件对象f
r
(只读)、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网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算