मैं सूची में पथ प्राप्त करने का प्रयास करता हूं और जब तक मुझे ä या ö जैसे विशेष वर्ण नहीं मिलते, तब तक सब कुछ ठीक काम कर रहा है। स्ट्रिंग में उन्हें बाइट्स के रूप में दर्शाया जाता है उदाहरण के लिए ä \xe4 है। यदि मैं टर्मिनल में एक ही पायथन लिपि का उपयोग करता हूं तो मुझे सभी पथ सही ढंग से मुद्रित हो जाते हैं, भले ही सूची में पथ वास्तविक अक्षरों के बजाय इन बाइट्स में हों।

यहाँ मेरा कोड है जहाँ मैं सभी फ़ाइल नाम निकालता हूँ:

def read_files(path):
    """
    Read all files in folder specified by path
    :param path: Path to folder which contents will be read
    :return: List of all files in folder specified by path
    """
    files = []
    for f in listdir(path):
        if isfile(join(path, f)):
            files.append(make_unicode(join(path, f)))
    return files

def make_unicode(string):
    if type(string) != unicode:
        string = string.decode('utf-8')
    return string

मुझे नहीं पता कि अब से कहाँ जाना है। मैंने व्यावहारिक रूप से वह सब कुछ करने की कोशिश की है जो मुझे संभवतः Google से मिल सकता है। यह पायथन की तुलना में सिकुलीएक्स समस्या से अधिक है, क्योंकि पायथन कोड सिकुलीएक्स के बाहर ठीक काम करता है।

मैं पायथन 2.7 और सिकुलीएक्स 1.1.1 का उपयोग करता हूं।

0
J. Rautava 22 अक्टूबर 2018, 18:12

1 उत्तर

सबसे बढ़िया उत्तर

तो मैंने इसे कवर कर लिया। समस्या यह थी कि read_files(path) फ़ंक्शन को बाद में फिर से कॉल किया गया था और जब path यूनिकोड था जिसमें विशेष वर्णों के साथ बाइट्स के रूप में चिह्नित किया गया था, तो पूरी बात टूट गई। मैंने अपना कोड इस तरह से बदल दिया कि इस फ़ंक्शन को केवल एक बार बुलाया गया था और फिर मैं विशेष पात्रों के साथ काम करने में सक्षम था।

0
J. Rautava 29 अक्टूबर 2018, 07:24