带有 bash 中变量的 read-while 循环——等同于 Python?
read-while loop with variables in bash -- equivalent in Python?
目前正在重构一些旧代码并希望将一些 bash 脚本转换为 python。
我们有一小部分功能是用 bash 编写的,类似于:
var1=
var2=
var3=
while read var1 var2 var3; do
logic
老实说,我不确定我是否理解它在做什么。我以前在文件的上下文中看到过 while read 循环,但我不确定这 3 个变量而不是文件在这里发生了什么。
我想首先了解 while read 到底在做什么,但是我无法在网上找到很多资源来解释变量上下文中的这种逻辑,我所看到的只是 while read 循环正在迭代实际文件。
最后,我希望将此功能转换为 python。对类似 Python 功能的任何建议将不胜感激(对 python 来说也是新的)但希望如果我能首先掌握上面的逻辑,我应该能够自己找到一些东西。
如果需要,可以在 while 循环中提供更多关于逻辑的上下文:)
如有任何帮助,我们将不胜感激
bash
脚本从标准输入中读取每一行,将其拆分成单词,并将单词分配给var1
,var2, and
var3in order. It loops until
read`returns 错误,通常发生在 EOF。
大致等效的 python 代码为:
while True:
try:
var1, var2, var3 = input().split(maxsplit=2)
except EOFError:
break
# logic
maxsplit=2
将使 split()
return 最多 3 个值。如果输入的单词超过 3 个,则所有剩余的单词将包含在最后一个单词中。这类似于当输入词多于变量时 read
的工作方式。
如果输入的单词少于 3 个,Python 版本将无法使用。 bash
会给剩余的变量赋一个空字符串,Python会报错。如有必要,可以通过重新编码来解决此问题。
目前正在重构一些旧代码并希望将一些 bash 脚本转换为 python。
我们有一小部分功能是用 bash 编写的,类似于:
var1=
var2=
var3=
while read var1 var2 var3; do
logic
老实说,我不确定我是否理解它在做什么。我以前在文件的上下文中看到过 while read 循环,但我不确定这 3 个变量而不是文件在这里发生了什么。
我想首先了解 while read 到底在做什么,但是我无法在网上找到很多资源来解释变量上下文中的这种逻辑,我所看到的只是 while read 循环正在迭代实际文件。
最后,我希望将此功能转换为 python。对类似 Python 功能的任何建议将不胜感激(对 python 来说也是新的)但希望如果我能首先掌握上面的逻辑,我应该能够自己找到一些东西。
如果需要,可以在 while 循环中提供更多关于逻辑的上下文:)
如有任何帮助,我们将不胜感激
bash
脚本从标准输入中读取每一行,将其拆分成单词,并将单词分配给var1
,var2, and
var3in order. It loops until
read`returns 错误,通常发生在 EOF。
大致等效的 python 代码为:
while True:
try:
var1, var2, var3 = input().split(maxsplit=2)
except EOFError:
break
# logic
maxsplit=2
将使 split()
return 最多 3 个值。如果输入的单词超过 3 个,则所有剩余的单词将包含在最后一个单词中。这类似于当输入词多于变量时 read
的工作方式。
如果输入的单词少于 3 个,Python 版本将无法使用。 bash
会给剩余的变量赋一个空字符串,Python会报错。如有必要,可以通过重新编码来解决此问题。