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
Ответы
Ответ 1
file = open('Failed.py', 'w')
file.write('whatever')
file.close()
Вот более питонная версия, которая автоматически закрывает файл, даже если в обернутом блоке было исключение:
with open('Failed.py', 'w') as file:
file.write('whatever')
Ответ 2
Вам нужно снова открыть файл, используя 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
Ответ 3
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, он делает код более понятным. Затем вы даете свои данные с помощью метода записи в файл файл.