#python
Вопрос:
Я хочу сохранить свои выходные данные при обработке файлов. Я сделал итерацию, и единственный вывод, который отображается, — это только последний ввод.
Вот мой код:
import os
num_string = []
strings = int(input("Enter how many lines of text: "))
for i in range (0,strings):
element = str(input(str(i 1) ". "))
(num_string.append(element))
for name in num_string:
print(name)
f = open("D:/VB/QUIZ NLTK/conll.iob", "w")
f.write("%sn" %(name))
f = open("D:/VB/QUIZ NLTK/conll.iob", "a")
f = open("D:/VB/QUIZ NLTK/conll.iob", "r")
Вот что это показывает в моем коде:
Сколько строк текста: 3
- a
- b
- c
Вывод отображается при обработке файлов:
c
Мой идеальный результат:
Я хочу, чтобы это выглядело так:
a
b
c
Комментарии:
1. Вы не записываете никаких данных в свой цикл.
2. Ваш код просматривает
num_string
и печатает содержимое. Но после того, как этот цикл завершится , он затем записывается в файл. В этот моментname
содержит последнее значение, которое он имел в цикле. Переместитеopen()
вызов в положение передfor
циклом (и решите , хотите ли вы"w"
или"a"
не делайте и то, и другое). Поместитеwrite()
вызов вfor
цикл, рядом сprint()
вызовом. Потому что вы хотите, чтобы в файле было то, чтоprint()
показывают звонки. И не забудьте вызватьclose()
файл послеfor
цикла.3. Для чего мне следует написать открытую? Первый или второй
Ответ №1:
Вот совет, изложенный в моем комментарии.
num_string = []
strings = int(input("Enter how many lines of text: "))
for i in range (0,strings):
element = str(input(str(i 1) ". "))
(num_string.append(element))
f = open(r""D:/VB/QUIZ NLTK/conll.iob"", "w") # Open the file before the loop
for name in num_string:
print(name)
f.write("%sn" %(name)) # Write to the file inside the loop
f.close() # Close the file after the loop
Я пропустил, import os
потому что ваш код его не использует. Кроме того, код настолько близок к вашему оригиналу, насколько это согласуется с тем, чтобы он работал так, как вы ожидаете.