background image

 

 

72 

 

σε μορφή αρχείου κειμένου. Το αρχείο περιλαμβάνει πληροφορίες από τη βάση δεδομένων και 

είναι οργανωμένο ανά θεματική ενότητα. 

Αρχικά ανακτώνται τα απαραίτητα δεδομένα, ερωτήσεις, απαντήσεις και θεματικές από 

τη  βάση  δεδομένων,  με  βάση  το  id  του  χρήστη.

  Γίνεται  χρήση  του  INNER  JOIN  ώστε  να 

συνδεθούν οι δύο πίνακες της βάσης δεδομένων, user_questions (ο πίνακας που καταγράφει τις 

ερωτήσεις που απάντησε κάθε χρήστης) και questions (ο πίνακας που περιέχει τις ερωτήσεις 

και τις απαντήσεις τους). 

    cursor.execute(''' 

        SELECT q.topic, q.question, q.answer 
        FROM user_questions uq 
        INNER JOIN questions q ON uq.question_id = q.id 

        WHERE uq.user_id = ? 
    ''', (user_id,))  

 

Με τη χρήση της open()

18

 σε λειτουργία εγγραφής ('w'), δημιουργείται το αρχείο και γράφεται 

στην κορυφή του μια επικεφαλίδα με το id του χρήστη και τον τίτλο "Questions and Answers", 

ακολουθούμενη  από  μια  γραμμή  διαχωρισμού,  ώστε  να  είναι  πιο  οργανωμένο  και 

ευπαρουσίαστο. Ελέγχεται αν υπάρχουν διαθέσιμες εγγραφές ερωτήσεων και απαντήσεων. Αν 

ναι, οι πληροφορίες οργανώνονται ανά θέμα χρησιμοποιώντας το λεξικό topic_questions. Για 

κάθε θεματική, καταγράφεται ο τίτλος της και οι ερωτήσεις-απαντήσεις που περιλαμβάνει. 

records = cursor.fetchall() 

    if records: 
        file_path = f'user_{user_id}_answers.txt' 
        with open(file_path, 'w') as file: 
            file.write(f"Users:{user_id}Questions and 

   

 

 Answers\n") 

            file.write("______________________\n\n") 
            topic_questions = {} 
            for topic, question, answer in records: 

              if topic not in topic_questions: 
                topic_questions[topic] = [] 
                topic_questions[topic].append((question,  
                answer)) 

            for topic, qas in topic_questions.items(): 
                file.write(f"Topic: {topic}\n") 
                file.write("_________________________\n") 

                for question, answer in qas:    
                  file.write(f"Question:{question}\nAnswer:  
                  {answer}\n\n") 

 

 

 

 

 

18

 

https://www.geeksforgeeks.org/writing-to-file-in-python/