ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
mister.davidלא בפורום כעת ת.הצטרפות: 22/02/2019 · הודעות: 1 ·
 

הודעה פורסם: 22/02/2019 - 22:01
נושא ההודעה: הקוד מדפיס תוצאות שונות שצריכות להיות חופפות

היי כתבתי קוד פיטון המעדכן אוטומטי את התיקייה בשרת עם הפרוטוקול FTP.
הוא מעדכן את מהתיקייה הראשית עד ל"קצה של העץ" תוך כדי השוואה בשמות.

התוצאה הראשונה נפלט מהLocal File.
התוצאה השניה נפלט מהServer File - מה שקוראים מהחיבור ftp.

לאחר השוואה ככה הוא יודע אם הקובץ קיים או לא.

כתוצאה מבעיה של עברית אני מקבל 2 תוצאות שונות:
Image

אשמח אם תוכלו לעזור לי

קוד:
#!/usr/bin/env python
# - *- coding: utf- 8 - *-

import ftplib
import time
import os

def LoginUser(host,port,username,password):
    ftp = ftplib.FTP()
    ftp.connect(host, port)
    if "220" in ftp.getwelcome():
        print "[+] Connect To Server"
        #print (ftp.getwelcome())
    try:
        ftp.login(username, password)
        print "[+] Login Connect to "+host+":"+str(port)+" - "+username
    except:
        print "[-] Login User and Password Fail"
    ftp.encoding='utf-8'
    ftp.sendcmd('OPTS UTF8 ON')
    return ftp

'''
# List Of Local Files In This Folder
'''
def ListLocalFiles(scriptpath):
    #myfileslocal = os.listdir(scriptpath)
    myfileslocal = next(os.walk('.'))[1]
    myfileslocalFiles = []
    for file in os.listdir(scriptpath):
            if "." in file:
                if file.startswith(".") != 1:
                    myfileslocalFiles.append(os.path.join("", file))
    return myfileslocalFiles
'''
# List Of Local Files In This Folder
'''
def ListLocalFolders():
    myfolderslocal = next(os.walk('.'))[1]
    return myfolderslocal
'''
# List Of Server Files In This Folder
'''
def ListServerFiles(ftp):
    myfilesServerFolder = []
    try:
        filesOnServer = ftp.nlst()
        for file in filesOnServer:
            if "." in file:
                if file.startswith(".") != 1:
                    myfilesServerFolder.append(os.path.join("", file))
        return myfilesServerFolder
    except:
        print "Not Login"
'''
# Upload File
'''

def UploadFile(filename,ftp):
    ftp.storbinary("STOR " + filename, open(filename, 'rb'))

def Diff(li1, li2):
    return (list(set(li1) - set(li2)))

'''
# Vars
'''
path = os.path.dirname(__file__)

ftp = LoginUser("localhost", 21, "user", "pass")

'''    ~     Main     ~ '''
list1 = ListLocalFolders()
flag = 0

def GetInFolder(x,ftp):
    # Get In Folder
    try:
        ftp.cwd(x)
        os.chdir(x)
    except:
        ftp.mkd(x)
        print "Error " + x + " Not Exists"
        flag = 1
        ftp.cwd(x)
        os.chdir(x)
        return 1

''' Check Folder And MKDir '''
while 1==1:
    for x in list1:
        if GetInFolder(x, ftp) == 1:
                print "done"
        # Get Files List
        pathLocal = path + "\\" + x
        listLocal = ListLocalFiles(pathLocal)
        listServer = ListServerFiles(ftp)
        print listLocal
        print listServer

        # Upload File To Folder
        listNeedToMKDir = Diff(listLocal,listServer)
        for i in listNeedToMKDir:
            #print "------------------------------"
            print "Upload:" + i
            print "To:" +x
            UploadFile(i, ftp)
            print os.getcwd()
        list2 = ListLocalFolders()
        for z in list2:
            if GetInFolder(z, ftp) == 1:
                print "done"
            listLocal2 = ListLocalFiles(pathLocal + "\\" + z)
            listServer2 = ListServerFiles(ftp)
            # Upload File To Folder
            listNeedToMKDir2 = Diff(listLocal2, listServer2)
            for z in listNeedToMKDir2:
                # print "------------------------------"
                print "Upload:" + z
                print "To:" + x
                UploadFile(z, ftp)
                print os.getcwd()
            ftp.cwd("..")
            os.chdir("..")
            time.sleep(5)
        ftp.cwd("..")
        os.chdir("..")
    time.sleep(2)
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 23/02/2019 - 00:29
נושא ההודעה:

זה פייתון 2. תעבור ל3, יש לו תמיכה יותר טובה ביוניקוד (וב3 utf-8 הוא ברירת המחדל)

בכל מקרה נראה שהרשימה הראשונה בקידוד win1255
והשניה בקידוד utf-8

בפיתון 2:
קוד:

a="\xf9\xec\xe5\xed.txt"
b = "\xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d.txt"
a.decode('1255').encode('utf-8') == b

יוצא True
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. mister.david
  2. אורח