Как написать файл на python?

#python

Вопрос:

у меня возникли проблемы с тем, чтобы понять, как заставить этот код писать файл. я использую python 3.8

 text = open("readfilein6.txt", "r") 


d = dict() 

for line in text:      
    line = line.strip() 

    line = line.lower() 
 
    words = line.split(" ") 

    for word in words: 
   
        if word in d: 
        
            d[word] = d[word]   1
        else: 
        
            d[word] = 1

for key in list(d.keys()): 
    print(key, d[key]) 
 

это моя неудачная попытка написать файл

 file1= ("outputini6.txt")
with open(file1, "w") as file_object:
    file_object.write(key, d[key])
 

я получаю это сообщение об ошибке:

 file_object.write(key, d[key])
TypeError: write() takes exactly one argument (2 given)
 

он печатает именно то, что мне нужно, но он также нужен мне для записи файла

Комментарии:

1. пробовать file.write(string)

2. Пожалуйста, всегда добавляйте полное сообщение об ошибке, если оно у вас есть, в свой вопрос или, если ваш код не выполняет то, что вы ожидаете, публикуйте ожидаемые и фактические результаты. Вы говорите, что ваша попытка написать провалилась, но не описываете, как она провалилась. Кроме того, используйте тег Python для большинства вопросов. 585 человек следят за вопросами с тегом Python-3,8 против 1,3 млн для Python

3. В сообщении об ошибке говорится, в чем именно заключается проблема. Ваша строка кода file_object.write(key, d[key]) неверна, потому write что метод принимает один параметр, а не два. Вы могли бы написать key и d[key] с двумя звонками write .

Ответ №1:

Ты действительно был очень близок:

 text = open("readfilein6.txt", "r")

d = dict()

for line in text:
    line = line.strip()

    line = line.lower()

    words = line.split(" ")

    for word in words:

        if word in d:

            d[word] = d[word]   1
        else:

            d[word] = 1
file1 = "outputini6.txt"
with open(file1, "w") as file_object:
    for key in list(d.keys()):
        print(key, d[key])
        file_object.write(f"{key} {d[key]}n")
 

То, что я изменил, — это запись, поэтому для ввода как ключа, так и значения. я также вызвал запись перед циклом, чтобы не перегружать сохраненные данные и не записывать все одновременно.

Комментарии:

1. Это действительно помогло, спасибо!

2. Это то, что вы намерены сделать? нужна дополнительная помощь?