嗨我已經創建了這個python腳本,但它只能運行一半而不是完全的,Ftp上傳的一部分沒有執行,我該如何解決這個腳本?Python腳本只執行部分
import subprocess
import time
cmdline = ["cmd", "/q", "/k", "echo off"]
cmd = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
batch = b"""\
ping 192.0.2.2 -n 1 -w 1000 > nul
notepad.exe office-data.txt
"""
cmd.stdin.write(batch)
cmd.stdin.flush() # Must include this to ensure data is passed to child process
result = cmd.stdout.read()
print(result)
import ftplib
sftp = ftplib.FTP('ftp.example.com','userexample','passexample') # Connect
fp = open('office-data.txt','rb') # file to send
sftp.storbinary('STOR office-data.txt', fp) # Send the file
fp.close() # Close file and FTP
sftp.quit()
我猜ftp.example.com和那些登錄細節是不合法的,對於初學者 – n1c9
FTP部分是無關緊要的,因爲問題會發生在簡單的'print'上。 –
請勿使用'shell = True';您已經手動運行cmd.exe。像cmd期望的那樣用'「\ r \ n」'結尾每行,或者用'str'輸入使用'universal_newlines = True'。使用'bufsize = 0'來避免'flush',並避免使用'result,err = cmd.communicate(batch)'造成的死鎖。 – eryksun