Я пытаюсь создать функцию create_python_script, которая создает новый скрипт python в текущем рабочем каталоге, добавляет к нему строку комментариев, объявленную переменной 'comments', и возвращает размер нового файла. Я получаю 0, но должно быть 31. Не уверен, что делаю не так.

    import os

def create_python_script(filename):
  comments = "# Start of a new Python program"
  with open("program.py", "w") as file:
    filesize = os.path.getsize("/home/program.py")
  return(filesize)

print(create_python_script("program.py"))
1
DanDan 17 Июн 2020 в 20:01

2 ответа

Лучший ответ

Вы забыли записать в файл, поэтому он ничего не будет содержать. Еще одна важная вещь, о которой следует помнить, это то, что файл закрывается автоматически после оператора with. Другими словами: ничего не записывается в файл до тех пор, пока оператор with не закончится, поэтому размер файла в вашей программе по-прежнему равен нулю. Это должно работать:

import os

def create_python_script(filename):
    comments = "# Start of a new Python program"
    with open(filename, "w") as f:
        f.write(comments)
    filesize = os.path.getsize(filename)
    return(filesize)

print(create_python_script("program.py"))

Обратите внимание, что входной аргумент ранее не использовался, а теперь был изменен.

2
Johan 17 Июн 2020 в 17:15
def create_python_script(filename):
  comments = "# Start of a new Python program"
  with open(filename, 'w') as file:
    filesize = file.write(comments)
  return(filesize)

print(create_python_script("program.py"))
1
quamrana 18 Янв 2021 в 11:24