#python
#python
Вопрос:
Мне нужно выполнить приведенную ниже функцию на основе пользовательского ввода:
Если
X=0
, то из строкиURL ....Print('Success
следует записать в файл и сохранить какtest.py
.
На серверной части сохраненный файл ( Test.py
) автоматически извлекался планировщиком задач из сохраненного местоположения и периодически запускался.
И да, у нас есть много примеров записи файла / запуска python из другого файла, но мы не смогли получить никакого сходства с написанием скрипта python из другого файла.
Я уверен, что не хватает нескольких основных шагов.
if x=0:
### Need to write below content to a file amp; save as test.py######
URL = "https://.../login"
headers = {"Content-Type":"application/json"}
params = {
"userName":"xx",
"password":"yy"
}
resp = requests.post(URL, headers = headers, data=json.dumps(params))
if resp.status_code != 200:
print('fail')
else:
print('Success')]
else:
### Need to write below content to a file ######
URL = "https://.../login"
headers = {"Content-Type":"application/json"}
params = {
"userName":"RR",
"password":"TT"
}
resp = requests.post(URL, headers = headers, data=json.dumps(params))
if resp.status_code != 200:
print('fail')
else:
print('Success')
Ответ №1:
Для упрощения можно использовать тройные кавычки.
if x==0:
path = "test.py"
string = """
import requests, json
URL = "https://.../login"
headers = {"Content-Type":"application/json"}
params = {
"userName":"xx",
"password":"yy"
}
resp = requests.post(URL, headers = headers, data=json.dumps(params))
if resp.status_code != 200:
print('fail')
else:
print('Success')
"""
else:
path = "other.py"
string = """
import requests, json
URL = "https://.../login"
headers = {"Content-Type":"application/json"}
params = {
"userName":"RR",
"password":"TT"
}
resp = requests.post(URL, headers = headers, data=json.dumps(params))
if resp.status_code != 200:
print('fail')
else:
print('Success')
"""
with open(path, 'w') as f:
f.write(string)
Смотрите документы. Примерно треть пути вниз по странице.
Ответ №2:
new_file = "print('line1')n"
"print('line2')n"
"print('line3')"
f = open('new_python.py', 'w')
print(new_file, file=f)
Ответ №3:
Если вы хотите сохранить его в файл, в конце концов, это должна быть строка.
Ваши два варианта файла выглядят довольно похоже, поэтому не записывайте его дважды:
template ='''
URL = "https://.../login"
headers = {"Content-Type":"application/json"}
params = {
"userName":"%s",
"password":"%s"
}
resp = requests.post(URL, headers = headers, data=json.dumps(params))
if resp.status_code != 200:
print('fail')
else:
print('Success')
'''
if x == 0:
content = template % ("xx", "yy")
else:
content = tempalte % ("RR", "TT")
with open("test.py", "w") as f:
f.write(content)