我想在远程主机上创建一个名为passenger_wsgi.py的文件.我想使用以下字符串来创建文件的内容:
''' import sys, os sys.path.insert(0, "/ruby/%s/www/%s/django-projects") sys.path.insert(0, "/ruby/%s/www/%s/django-projects/project") import django.core.handlers.wsgi os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings' application = django.core.handlers.wsgi.WSGIHandler() ''' % (user,host,user,host)
用户和主机变量将是结构功能的参数.
我是python中任何类型的文件操作的新手,但我也不确定在结构中应该采用什么程序.我应该在本地创建文件,然后使用fabric的put命令上传它(然后删除本地版本)?我应该使用适当的bash命令(使用fabric的运行)在远程主机上创建文件吗?如果是这样,那么如何最好地处理字符串中的所有"和" - 面料会逃脱吗?或者我应该以某种不同的方式解决这个问题?
使用StringIO和put:
text = ''' import sys, os sys.path.insert(0, "/ruby/%s/www/%s/django-projects") sys.path.insert(0, "/ruby/%s/www/%s/django-projects/project") import django.core.handlers.wsgi os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings' application = django.core.handlers.wsgi.WSGIHandler() ''' % (user, host, user, host) import StringIO put(StringIO.StringIO(text), "remote-path")
您可以使用fabric.contrib.files中的函数append()
或upload_template()
函数