[英]Python - using for loop inside file.write()
我正在尝试通过在file.write中运行for循环来打印所有端口,但以下语法错误给了我。
ports = ["123", "234"]
# mentioned only 2 ports but I have more than 200 ports
f = open("test.html", "w")
f.write( for i in range(0, len(port)):
File "<stdin>", line 1
f.write( for i in range(0, len(port)):
^
SyntaxError: invalid syntax
用for循环包装文件写操作将解决您的问题。
ports = ["123", "234"]
f = open("test.html", "w")
for i in range(0, len(ports)):
f.write(ports[i] + '\n')
for循环必须在外部:
with open("test.html", "w") as f:
for i in range(0, len(port)):
f.write(i + '\n')
我建议您将其with open…
使用,这样循环结束后,文件将自动关闭。
是的,那条线是各种各样的错误。
您想在函数调用内部进行列表理解吗?
将循环放到外面
for port in ports_list:
f.write(port + '\n')
但是您可以将列表加入一个字符串中
f.write('\n'.join(ports_list))
根据您要执行的操作,您似乎正在尝试使用理解来合并并调用文件上的write。 您收到的语法错误是由于您对所要执行的操作的明显误用。 您实际上正在尝试做的可能是这样的:
[f.write(x) for x in port]
但是, 这也是错误的 。 您将列表理解用于其副作用,这是列表理解的非常不好的用法。 您正在创建一个无用的列表,只是为了尝试节省代码行。
相反,如其他答案所述,进行迭代并调用write:
for port in ports:
f.write("{}\n".format(ports))
为了使您的代码更健壮,额外的奖励是为文件管理器使用上下文管理器,以便在使用文件后将其关闭。 当前,您应该在文件上显式调用f.close()
。 因此,您可以执行以下操作:
with open("test.html", "w") as f:
for port in ports:
f.write("{}\n".format(port))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.