有一个代码:
import socket
s = socket.socket()
s.connect(('192.168.0.195', 6969))
with open('hello.txt', "rb") as f:
buffer = f.read(4096)
while buffer:
s.sendall(buffer)
buffer = f.read(4096)
s.close()
是否可以将它写在一行中(通过;),以便可以通过执行python -c '...'?
您可以在 base64 中对代码文本进行编码,然后
eval通过它执行它。我会做一个例子,你自己
code把你的代码放进去例子:
现在在控制台中:
是的你可以。这是一个简短的例子:
或者
或者
资源
注意示例中的 for 循环(您也嵌套了 with和while)。
如上所述,您可以将所有文本包含在一行中并保留制表符并将其滑入函数
exec()中,将所有连字符替换为\n,并将每个缩进替换为\t:但是分号也允许你在一行中编写表达式,但是这种方法对嵌套块有很大的限制,因此
with必须while重写片段。对于这种情况,您可以使用逐块循环重新制作循环到文件末尾,并计算文件大小:
或者在一行中:
一行仍然难以阅读,但可以通过 IDE 使用标准设计工具进行扩展