में sftp के माध्यम से कनेक्ट करने के बाद निर्देशिका में सभी फ़ोल्डरों और फ़ाइलों को कैसे सूचीबद्ध करें हाय मैं अजगर का उपयोग कर रहा हूं और sftp से कनेक्ट करने का प्रयास कर रहा हूं और वहां से एक XML फ़ाइल पुनर्प्राप्त करना चाहता हूं और नीचे मेरी स्थानीय प्रणाली में स्थानांतरित करने की आवश्यकता है कोड हैपाइथन
import paramiko
sftpURL = 'sftp.somewebsite.com'
sftpUser = 'user_name'
sftpPass = 'password'
ssh = paramiko.SSHClient()
# automatically add keys without requiring human intervention
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(sftpURL, username=sftpUser, password=sftpPass)
ftp = ssh.open_sftp()
files = ftp.listdir()
print files
यहां कनेक्शन सफलता भरा हुआ है और अब मैं सभी फ़ोल्डर और सभी फ़ाइलों को देख सकते हैं और वहाँ से xml फ़ाइल पुन: प्राप्त करने के लिए आवश्यक फ़ोल्डर में डालना होगा करना चाहते हैं।
अंततः मेरा इरादा sftp सर्वर से कनेक्ट करने के बाद सभी फ़ोल्डर्स और फ़ाइलों को देखना है। जिसके माध्यम से उपरोक्त कोड में मैं ftp.listdir()
का इस्तेमाल किया था मैं जैसे
['.bash_logout', '.bash_profile', '.bashrc', '.mozilla', 'testfile_248.xml']
मुझे पता है कि इनमें से केवल फ़ाइलें मौजूद हैं कि क्या चाहते हैं कुछ चीज के रूप में उत्पादन मिल गया?
और ऊपर दिए गए आदेश को फ़ोल्डरों को भी देखने का अधिकार है?
क्या सभी फ़ोल्डर और फ़ाइलें
की 'SFTPAttributes' एक भयानक, भयानक हैक है stringification व्यवहार पर निर्भर:
फ़ाइलें विपरीत खोज कर रहे हैं। आप इसे ठीक से क्यों नहीं करते हैं, और 'stat.S_ISDIR (lstatout.st_mode) 'का उपयोग करें? –
@FakeName मैं ऐसा करने की कोशिश कर रहा हूं और मुझे आपकी टिप्पणी समझ में नहीं आ रही है। –
@PANDAStack - 'ftp.lstat (i)' वर्ग ['SFTPAttributes'] का एक उदाहरण देता है (https://github.com/paramiko/paramiko/blob/6978c7a0b8faa683b119de3a0c096be31ac4fdc9/paramiko/sftp_attr.py#L25)। इस जवाब का यह तरीका इस बात पर निर्भर करता है कि लाइब्रेरी ने 'SFTPAttributes' * look * के' __repr__' को कैसे चुना है, जो प्रोग्रामर डिबगिंग के लिए ** पूरी तरह से ** इंटरफ़ेस बनाया गया है, और शायद परीक्षण या गारंटी नहीं है पैच संस्करण संख्याओं में भी स्थिर रहना। –