我已经看到许多在线示例使用不同的import模块方法.我想知道有什么区别,如果它在速度,准确性,优先级或心理上.
第一个也是最常见的是;
import sys
import os
import socket
import shutil
import threading
import urllib
import time
import zipfile
Run Code Online (Sandbox Code Playgroud)
我理解方法,但是当你可以使用时,这似乎是不必要的,就像我个人所做的那样;
import sys, os, socket, shutil, threading, urllib, time, zipfile
Run Code Online (Sandbox Code Playgroud)
更少的线条,更少的代码,更少的麻烦,至少在我看来.然而,第三个让我难过;
import sys, os, shutil
import threading
import zipfile
import socket, urllib
import time
Run Code Online (Sandbox Code Playgroud)
这种导入方法的重点是什么?我认为混合前两种方法会很不方便,也会混乱.它似乎比任何一种方法都慢,或者在最坏的情况下,比两种方法都慢.
所以,就像我想知道的那样,三者之间有什么区别?
在第三个中是否有任何逻辑,如速度提升,还是只是为了看起来?
因此,我正在编写一个 python 脚本,它会在脚本开头自动下载更新。好吧,那么?因此,当我尝试覆盖它时,它会sh: /Users/<user>/Desktop/<scriptname>.py: Permission denied使用 CodeRunner 2.0.2、IDLE 2.7.9 和 PythonLauncher。这是受影响的片段:
cwd = os.getcwd()
cwd = (str(cwd) + "/<scriptname>.py")
update = urllib.URLopener()
cwd = str(cwd)
print "Downloading Update..."
update.retrieve("http://<site_domain>/<scriptname>.py",cwd)
time.sleep(1.25)
print "Update Dowloaded! Please Wait..."
time.sleep(2.5)
os.system(cwd)
Run Code Online (Sandbox Code Playgroud)
我发现这很奇怪,因为人们说它应该覆盖没有问题,但是,当没有兄弟时我发现很奇怪.pyc,这意味着它可能一直在尝试同时读写,更不用说它工作正常,然后突然结束了。
我一直在绞尽脑汁地试图让代理工作。我需要解密来自服务器和客户端的数据包((这可能是无序的..)),然后解压缩除数据包标头之外的所有内容。
前 2 个数据包((10101和20104))未压缩,可以正确解密、破坏和反编译。
可惜,却无济于事;失败!;zlib.error: Error -5 while decompressing data: incomplete or truncated stream
当我尝试解压缩数据包的加密版本时出现同样的错误。
当我包含数据包标头时,我收到一个随机选择的-3错误。
我也尝试过更改-zlib.MAX_WBITS为zlib.MAX_WBITS以及其他一些,但仍然遇到相同的错误。
这是代码;
import socket, sys, os, struct, zlib
from Crypto.Cipher import ARC4 as rc4
cwd = os.getcwd()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ss = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('192.168.2.12',9339))
s.listen(1)
client, addr = s.accept()
key = "fhsd6f86f67rt8fw78fw789we78r9789wer6renonce"
cts = rc4.new(key)
stc = rc4.new(key)
skip = 'a'*len(key)
cts.encrypt(skip)
stc.encrypt(skip)
ss.connect(('game.boombeachgame.com',9339))
ss.settimeout(0.25)
s.settimeout(0.25)
def io():
while True:
try: …Run Code Online (Sandbox Code Playgroud)