Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 多输入多行循环写入文件-python_Python 3.x - Fatal编程技术网

Python 3.x 多输入多行循环写入文件-python

Python 3.x 多输入多行循环写入文件-python,python-3.x,Python 3.x,目前我正在粘贴多行名称,这些名称在每行中循环并写入一个文件。这会提示我粘贴起作用的值 但是,我希望有另一个提示,提示其他值,如IPs等,通过相同的循环 可能是非常简单的事情,但任何帮助都将不胜感激 提前谢谢 subnet = input(('Paste the subnet mask: ')) quit = '' for line in iter(input, quit): with open('my_file.yml', 'a') as data_file: data_

目前我正在粘贴多行名称,这些名称在每行中循环并写入一个文件。这会提示我粘贴起作用的值

但是,我希望有另一个提示,提示其他值,如IPs等,通过相同的循环

可能是非常简单的事情,但任何帮助都将不胜感激

提前谢谢

subnet = input(('Paste the subnet mask: '))

quit = '' 

for line in iter(input, quit):

   with open('my_file.yml', 'a') as data_file:
     data_file.write(" - host: " + line + "\n   ip: " + ips + "\n   subnet: 
       " + subnet)

您可以在不使用iter的情况下做您想做的事情,方法是使用一个无限的
while
,它只在没有输入时才会中断。如果不是主机,我也可以用
检查是否没有输入,因为空字符串返回
False
(请参阅:)

该文件仅打开一次。没有必要在每次迭代中重复打开它

我在调用
write()
时使用了一个,但您仍然可以像以前一样使用普通字符串

subnet=input('粘贴子网掩码:')
打开('my_file.yml','a')作为数据文件:
尽管如此:
主机=输入('输入主机:')
如果主机=“”:
打破
ips=输入('输入ips:')
如果ips='':
打破
数据文件.write(f'-host:{host}\n ip:{ips}\n子网:{subnet}\n')
my_file.yml的内容

 - host: localhost
   ip: 192.168.0.5
   subnet: 255.255.255.0
 - host: anotherhost
   ip: 192.168.1.1
   subnet: 255.255.255.0

您实际上并没有发布接受任何输入的位置,所以我看不出您当前是如何获得输入的。@对于iter中的行(输入,退出):行。谢谢。你能发布完整的代码吗?我认为你用iter做不到。如果你需要上面的代码,你必须去旧学校使用。这正是你在那里看到的。目前是,;It’他只是在“for”行等待我的输入,我在该行中粘贴了内容。只需另一个提示即可粘贴IP。如果有别的方法我很乐意尝试。谢谢