怎么if __name__ == "__main__":办?
# Threading example
import time, thread
def myfunction(string, sleeptime, lock, *args):
while True:
lock.acquire()
time.sleep(sleeptime)
lock.release()
time.sleep(sleeptime)
if __name__ == "__main__":
lock = thread.allocate_lock()
thread.start_new_thread(myfunction, ("Thread #: 1", 2, lock))
thread.start_new_thread(myfunction, ("Thread #: 2", 2, lock))
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用python sftp文件,并且该代码在交互式shell中非常有效-甚至可以一次全部粘贴。
当我尝试导入文件(只是对其进行编译)时,代码将挂起,没有异常或明显的错误。
如何获取代码进行编译,或者有人拥有可以通过其他方法完成sftp的有效代码?
这段代码挂在ssh.connect()语句上:
“”“ ProblemDemo.py
从paramiko演示文件中删除。
该代码在shell中有效,但在尝试导入时会挂起!
“”
从进口睡眠开始
导入操作系统
进口paramiko
sOutputFilename =“ redacted.htm”#-有效负载文件
主机名=“ redacted.com”
#### - 警告!嵌入式密码!尽快删除。
sUsername =“已编辑”
sPassword =“已编辑”
sTargetDir =“已编辑”
#-获取主机密钥(如果我们知道的话)。
hostkeytype =无
主机密钥=无
host_keys = {}
尝试:
host_keys = paramiko.util.load_host_keys(os.path.expanduser('〜/ .ssh / known_hosts'))
除了IOError:
尝试:
#也尝试〜/ ssh /,因为Windows不能有一个名为〜/ .ssh /的文件夹
host_keys = paramiko.util.load_host_keys(os.path.expanduser('〜/ ssh / known_hosts'))
除了IOError:
打印'***无法打开主机密钥文件'
host_keys = {}
如果host_keys.has_key(主机名):
hostkeytype = host_keys [hostname] .keys()[0]
hostkey = host_keys [hostname] [hostkeytype]
打印'使用类型为%s的主机密钥'%hostkeytype
ssh = paramiko.Transport((主机名,22))
ssh.connect(用户名= s用户名,密码= sPassword,主机密钥=主机密钥)
sftp = paramiko.SFTPClient.from_transport(ssh) …