Запись в HTML через Python без импорта ОС? (Python 3.8 / Windows)

#python #html #user-input

#python #HTML #пользовательский ввод

Вопрос:

По сути, я хочу знать, есть ли более простой способ написать это, который не требует import os модуля? Я хочу создать простую веб-страницу из Python, используя HTML-файл. И хотя это делает именно то, что я хочу, я, похоже, не могу придумать простой / базовый способ или способ, который не включает import os модуль.

 import os

name = input("Enter your name here: ")
persona = input("Write a sentence or two describing yourself: ")

with open('mypage.html', 'rt') as file:
    with open('temp_mypage.html', 'wt') as new:
        for line in file:
            line = line.replace('some_name', name)
            line = line.replace('some_persona', persona)
            new.write(line)

os.remove('mypage.html')
os.rename('temp_mypage.html', 'mypage.html')
  

HTML-код:

 <html>
<head>
<body>
<center>
<h1>
some_name
# input into the file
</h1>
</center>
<hr />
some_persona
<hr />
</body>
</html>
  

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

1. Используйте Flask: flask.palletsprojects.com/en/1.1.x

2. Во-вторых, зачем вам это делать

3. Потому что я не понимал, что мой инструктор не хотел, чтобы мы использовали import os, и теперь я пытаюсь выяснить, как его переписать.

4. О, так это домашнее задание

5. Я имею к этому какое-то отношение

Ответ №1:

Вам не нужен модуль ОС и временный файл, вместо этого вы можете просто добавить в переменную и записать обратно

 name = input("Enter your name here: ")
persona = input("Write a sentence or two describing yourself: ")
new = ""

with open('mypage.html', 'rt') as file:
        for line in file:
            line = line.replace('some_name', name)
            line = line.replace('some_persona', persona)
            new  = line.strip()

with open('mypage.html','w') as f:
        f.write(new)
  

И для подобных задач это не рекомендуемый способ. Используйте веб-фреймворк, такой как Flask (Django будет самым тяжелым для этого простого), сценарии CGI теперь устарели

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

1. О … это то, чего он хотел. Ну, я думал, что он должен активировать веб-сайт на веб-странице или что-то в этом роде. Я тупой мальчик

2. Ах, я вижу, это работает действительно хорошо! Прежде чем я загрузил рабочий код, я пытался открыть его в режиме записи с помощью инструкции «for line», но он продолжал говорить мне, что это не читаемый объект, и это сбило меня с толку. По большей части это имеет смысл, и это действительно работает, не могли бы вы объяснить мне, пожалуйста, строку ‘new = «»‘?

3. new="" создает новую пустую строковую переменную, а также для чтения / записи из файла, открытого в rw режиме mode, пожалуйста, проголосуйте (нажмите кнопку ^ looking) и примите (нажмите большую галочку), добро пожаловать 🙂

4. О, хорошо, хорошо, теперь я понимаю это намного лучше. Это было потрясающее исправление! Спасибо, чувак! Я ценю это

5. @WasifHasan Я не думал спрашивать раньше, и я надеюсь, что это не беспокоит, но возможно ли зациклить эту программу? И что я имею в виду под этим, так это то, как я могу запускать программу снова и снова, не прерывая каждый раз новый html-файл, потому что в качестве тестового запуска я ввел JK в качестве входных данных в обоих полях, и теперь моему html-файлу постоянно присвоено значение JK. Если это имеет смысл. Я не уверен, как ответить на этот вопрос в Google..