2016-12-16 5 views
0

Так что я пытаюсь сравнить несколько таблиц с помощью скрипта Python. Фактическое сравнение работает, проверено с помощью операторов печати, но запись в .txt-файл отсутствует. Я считаю, что может иметь ошибку в моем синтаксисе, хотя, будучи относительно новым для Python, я не могу его найти.Написание сравнения с .txt-файлом при сравнении sql-файлов

for num in range(0, 4): #runs through the database array and compares the files in each folder 
    comp_var = directory + server_number[size] + databases[num] 
    for file in os.listdir(comp_var):  
     for num1 in os.listdir(master + databases[num]): 
      var = master + databases[num] + "\\" + os.listdir(master + databases[num])[size] 
      for line in open(var, 'r'): 
       for line2 in open(comp_var + "\\" + file, 'r'): 
        same = set(line).intersection(line2) 
        print(same) 
       same.discard('\n') 
      with open('results.txt', 'w') as file_out: 
       for line1 in same: 
        file_out.write(line1) 
      size = size + 1 
      comp_var = directory + server_number[size] + databases[num]    
     size = 0 
+0

Можете ли вы описать, что происходит? Вы получили сообщение об ошибке? Создан ли файл вообще? – EventHorizon

+0

@ Запустите файл, нет сообщения об ошибке, кроме случаев, когда он достигает файла в другой папке, которую он не может найти. Кроме того, он должен писать строки за строкой – Sculler

ответ

0

Ваша проблема в том, что вы создаете новый файл каждый раз, когда вы вызываете его открытым. Вы должны использовать 'a' для добавления в файл, который, вероятно, вы хотите.

+0

Или даже лучше открыть файл в режиме '' w'' за пределами самого внешнего цикла ... –

+0

Как я уже сказал Dulguun, он не работает – Sculler

+0

Попробуйте распечатать вывод, который вы записывают в файл в качестве меры отладки. Это означает, что линия печати1. Кроме того, намерение кажется неправильным. –

0

Вы переписываете results.txt.

with open('results.txt', 'w') as file_out:

изменить его:

with open('results.txt', 'a') as file_out:

из Python documentation:

'w' только для записи (существующий файл с таким же именем будут удалены), и 'a' открывает файл для добавления; любые данные, записанные в файл, автоматически добавляются в конец.

+0

Это все еще не работает, чтобы быть полностью честным. – Sculler

Смежные вопросы