Python Сохранить в файл
Я хотел бы сохранить строку в файл с программой на языке Python Failed.py
Вот что у меня так далеко:
myFile = open('today','r')
ips = {}
for line in myFile:
parts = line.split(' ')
if parts[1] == 'Failure':
if parts[0] in ips:
ips[pars[0]] += 1
else:
ips[parts[0]] = 0
for ip in [k for k, v in ips.iteritems() if v >=5]:
#write to file called Failed.py
5 ответов
file = open('Failed.py', 'w')
file.write('whatever')
file.close()
Вот более питоническая версия, которая автоматически закрывает файл, даже если в обернутом блоке было исключение:
with open('Failed.py', 'w') as file:
file.write('whatever')
Вам нужно снова открыть файл, используя open()
, но на этот раз мимоходом 'w'
чтобы указать, что вы хотите записать в файл. Я также рекомендовал бы использовать with
чтобы убедиться, что файл будет закрыт, когда вы закончите писать в него.
with open('Failed.txt', 'w') as f:
for ip in [k for k, v in ips.iteritems() if v >=5]:
f.write(ip)
Естественно, вы можете захотеть включить перевод строки или другое форматирование в ваш вывод, но основы такие же, как указано выше.
Та же проблема с закрытием вашего файла относится к чтению кода. Это должно выглядеть так:
ips = {}
with open('today','r') as myFile:
for line in myFile:
parts = line.split(' ')
if parts[1] == 'Failure':
if parts[0] in ips:
ips[pars[0]] += 1
else:
ips[parts[0]] = 0
Вы можете использовать эту функцию:
def saveListToFile(listname, pathtosave):
file1 = open(pathtosave,"w")
for i in listname:
file1.writelines("{}\n".format(i))
file1.close()
# to save:
saveListToFile(list, path)
Чтобы записать в файл на Python, нам нужно открыть его в записи, добавить
a
или эксклюзивное творение
x
режим.
Нам нужно быть осторожными с
w
режиме, так как он будет перезаписан в файл, если он уже существует. Благодаря этому все предыдущие данные стираются.
Запись строки или последовательности байтов (для бинарных файлов) осуществляется с помощью метода write(). Этот метод возвращает количество символов, записанных в файл.
with open('Failed.py','w',encoding = 'utf-8') as f:
f.write("Write what you want to write in\n")
f.write("this file\n\n")
Эта программа создаст новый файл с именем
Failed.py
в текущем каталоге, если он не существует. Если он существует, он перезаписывается.
Мы должны сами включать символы новой строки, чтобы различать разные строки.
myFile = open('today','r')
ips = {}
for line in myFile:
parts = line.split()
if parts[1] == 'Failure':
ips.setdefault(parts[0], 0)
ips[parts[0]] += 1
of = open('failed.py', 'w')
for ip in [k for k, v in ips.iteritems() if v >=5]:
of.write(k+'\n')
Проверьте setdefault, это делает код немного более разборчивым. Затем вы сбрасываете свои данные с помощью метода записи объекта файла.