生成包含固定代码的python文件
在我的日常工作中,我编写了不同的模型,对于每个模型,我需要创建一个python文件,如下所示:生成包含固定代码的python文件,python,python-3.x,Python,Python 3.x,在我的日常工作中,我编写了不同的模型,对于每个模型,我需要创建一个python文件,如下所示: class-SomeModel: 定义参数(自): 返回 def定义_输入(自身): 返回 def运行模式(自): 返回 我想写一个python脚本,它将创建一个具有这种格式的文件 我试过: import os path = 'path_tol_folder_in_which_to_store_the_file' if not os.path.exists(path): os.makedirs(
class-SomeModel:
定义参数(自):
返回
def定义_输入(自身):
返回
def运行模式(自):
返回
我想写一个python脚本,它将创建一个具有这种格式的文件
我试过:
import os
path = 'path_tol_folder_in_which_to_store_the_file'
if not os.path.exists(path):
os.makedirs(path)
with open(os.path.join(path, 'some_model.py'), 'w') as some_model:
some_model.writelines(
'class SomeModel:'
' def define_params(csv):'
' csv = ("PD", STRING)'
' return csv'
)
运行此代码时,会创建文件,但其中只有一行:
类SomeModel:def define_params(csv):csv=(“PD”,STRING)返回csv
(假设这是一行)
当我使用ctrl+alt+L(格式化代码)时,它并没有按照应该的方式格式化代码
是否有办法确保文件中的代码格式正确,即
class-SomeModel:
定义参数(csv):
csv=(“PD”,字符串)
返回csv
谢谢使用三重引号,保留空格:
some_model.write(
'''class SomeModel:
def define_params(csv):
csv = ("PD", STRING)
return csv
'''
)
使用保留空格的三重引号:
some_model.write(
'''class SomeModel:
def define_params(csv):
csv = ("PD", STRING)
return csv
'''
)
writelines
需要一个iterable字符串(但也会接受一个字符串,就像这里所做的那样),而您传递的实际上是一个字符串:Python隐式连接由空格(空格、换行符…)分隔的字符串
您可以向它传递一个字符串列表(注意分隔字符串的[]
和逗号),但必须在每行末尾明确地包含一个换行符\n
:
some_model.writelines([
'class SomeModel:\n',
' def define_params(csv):\n',
' csv = ("PD", STRING)\n',
' return csv'
])
或者更简单地说,多行字符串:
some_model.write("""
class SomeModel:
def define_params(csv):
csv = ("PD", STRING)
return csv
""")
writelines
需要一个iterable字符串(但也会接受一个字符串,就像这里所做的那样),而您传递的实际上是一个字符串:Python隐式连接由空格(空格、换行符…)分隔的字符串
您可以向它传递一个字符串列表(注意分隔字符串的[]
和逗号),但必须在每行末尾明确地包含一个换行符\n
:
some_model.writelines([
'class SomeModel:\n',
' def define_params(csv):\n',
' csv = ("PD", STRING)\n',
' return csv'
])
或者更简单地说,多行字符串:
some_model.write("""
class SomeModel:
def define_params(csv):
csv = ("PD", STRING)
return csv
""")
writelines
仍然需要在每行末尾换行。@mad物理学家哦,是的/只需在您的列表之前,在中的x上打一个“\n”x+”\n“是。。。在这里使用三重引号要容易得多…三重引号很有帮助。非常感谢<代码>写线
仍然需要在每行末尾换行。@mad物理学家哦,是的/只需在您的列表之前,在中的x上打一个“\n”x+”\n“是。。。在这里使用三重引号要容易得多…三重引号很有帮助。非常感谢writelines
需要一组以换行符结尾的字符串。这很神奇,因为字符串是可写的,但你真的应该调用write
。@madpysicator Right,这是复制粘贴错误:-)writelines
需要一个以换行结尾的可写字符串。因为字符串是可写的,所以它神奇地起作用了,但你真的应该调用write
。@madpysicator Right,这是复制粘贴错误:-)只是一个想法。您可以从父类继承。父类具有用于参数和状态定义的方法。在子类中,您只定义run方法。这只是一个想法。您可以从父类继承。父类具有用于参数和状态定义的方法。在子类中,只定义run方法。