使用关键字with 时,open() 返回的文件对象只在with 代码块内可用。如果要在with 代码块外访问文件的内容,可在with 代码块内将文件的各行存储在一个列表中,并
在with 代码块外使用该列表:你可以立即处理文件的各个部分,也可推迟到程序后面再处理。下面的示例在with 代码块中将文件passwd的各行存储在一个列表中,再在with 代码块外打印它们:
filename = '/etc/passwd'
with open(filename) as file_object:
lines = file_object.readlines()
for line in lines:
print(line.rstrip())
if ":" in line:
print line.split(":")[-1].rstrip()#用:分割,取最后一个,得到shell
处的方法readlines() 从passwd文件中读取每一行,并将其存储在一个列表中;接下来,该列表被存储到变量lines 中;在with 代码块外,我们依然可以使用这个变量。在❷ 处,我们使用一个简单的for 循环来打印lines 中的各行。由于列表lines 的每个元素都对应于文件中的一行,因此输出与文件内容完全一致。并用split取出shell。
一遍,直接粘贴代码复制进去,不要手写,不要看原理,不要思考为什么,直接输入,就会看到输出。把整个要学习的内容全部复制一遍,你就了解了整个框架。
第二遍,跟着打代码。因为所有的代码你都复制过,所以你会知道即使出错,也是自己没有打对,第一遍的成就感会激励着你做第二遍。这一遍中仍然不要去看解说,而是直接照着打代码。
第三遍,继续跟着打代码。但是这一遍可以尝试去了解小原理,也可以去看解说,这第三遍的过程中,有很多之前的问题,你就会突然明白,并且明白了一些之前没有明白的原理。
我的图:
其中在print中使用函数rstrip()的作用是消除多余的空白行。
shell的概念:
Shell基本上是一个命令解释器,类似于DOS下的command。它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourne shell (sh)和C shell (csh)。
交互式shell和非交互式shell
交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。
shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。
Python split()方法
描述
Python split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串
语法
split()方法语法:
str.split(str="", num=string.count(str)).
参数
str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num -- 分割次数。
返回值
返回分割后的字符串列表。
声明:https://www.jianshu.com/p/036c9f617ab3