python编程输入标准-《Python编程 第四版》 -第3章 脚本运行上下文

本章重点内容:

1、当前工作路径

2、命令行参数

3、shell环境变量

4、标准流

接下来展开详细的说明:

1、当前工作路径

当前工作路径,英文简写“CWD”

当前工作路径是系统自动识别和添加的,和你的PYTHONPATH无关,在此需要理顺与之相关的几个概念

当前工作路径和文件所在路径:

如果你运行一个python脚本,这个脚本和你当时系统运行该脚本的环境是可能不一样的

比如,你在文件夹1下面,运行文件夹2下面的python脚本,

文件夹1的路径就是当前工作路径

文件夹2的路径就是文件所在路径,系统会自动把脚本所在的路径, 添加到搜索路径中

当前工作路径和搜索路径:

脚本在运行的时候,需要调用很多参数和函数,所以系统环境会设定一个默认的搜索路径,以便查找

而当前工作路径是隐含的,也就是说,是会自动作为第一搜索路径执行的,和之前设定的默认搜索路径是不一样的

设定了搜索路径,就会固定下来,除非你再修改,而当前工作路径是以你当前的状态进行变化的,是可能随时更新的

2、命令行参数

Python可以通过sys模块获取脚本启动时命令行输入的信息,通常,被称为命令行参数

我们先写一个简单的脚本,如下:

1636174-20201011215226681-1151362136.png

然后运行看下:

1636174-20201011215252000-1340094145.png

它记录是是命令行的信息,第一个就是脚本的名称,如果在命令行增加其他,就会有不同的信息,如下:

1636174-20201011215515670-1177324293.png

随便增加不同的字符串,就会被记录

3、shell环境变量

获取shell变量,通过os.environ来索引,如下

1636174-20201011220229199-1962287681.png

返回的是一个字典,可以通过keys方法得到所有变量名:

1636174-20201011220337715-1709082438.png

知道某个具体的key后,可以直接查看,例如USERNAME

1636174-20201011221009276-1606072837.png

通过最初的查看可以知道,os.environ是一个字典类型,也就是可以通过操作字典一样,进行查询以及修改

4、标准流

sys模块提供了Python的标准输入、输出和错误流,

标准流是预先打开的Python文件对象,它们在Python启动时自动连接到你的程序上,标准流默认在Python启动时被绑定到控制台窗口

由于内部的print和input韩式实际上只是标准输出/输入流的借接口,因此他们和使用sys的stdout/stdin类似

1636174-20201011223011670-1180903455.png

重定向流到文件或程序

技术上,在默认情况下标准输出(以及print)会打印到程序启动的窗口上,标准输入(以及input)的文本从键盘读取,标准错误用来向窗口打印错误信息

也可以将这些流重定向到文件或者系统shell的其他程序,就像到Python脚本里的任意对象一样

在大多数系统里,重定向是的重用和组合通用命令行工具变得简单

先来看一个简单的程序,代码如下:

1636174-20201014215506137-1861613681.png

然后让我们来运行该程序,如下:

1636174-20201014215550316-138008813.png

该程序的输入是通过键盘输入的,可以重定向为文件内容的输入

我们先创建一个文件,txt格式的即可,内容是1、2、3,如下:

1636174-20201014215919115-685822082.png

然后我们把这个文件的内容定向到程序的输入:

因为在Jupyter里面没有运行成功,尝试着从命令行运行,如下:

1636174-20201014221113923-769061057.png

运行成功

我们可以把运行结果重定向到我们想要的文件中,代码如下:

1636174-20201014221300488-882137176.png

通过代码可以看到,其实输入和输出重定向用起来很方便

以上就是本章重点内容的说明!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值