python - 编写多行在 Python 中不起作用
问题描述
我正在尝试将多行写入文本文件。
代码如下所示:
directory = 'C:\SPAN'
with open(os.path.join(directory, 'SPANscript.txt'), 'w') as OPATH:
OPATH.writelines([r'Load C:\SPAN\RiskFiles\%s\SGX.%s.s.pa2'% (rundate.strftime("%Y-%m-%d"),rundate.strftime("%Y%m%d")),
r'Load C:\SPAN\RiskFiles\%s\cfe.%s.s.pa2'% (rundate.strftime("%Y-%m-%d"),rundate.strftime("%Y%m%d")),
r'Load C:\SPAN\RiskFiles\%s\cme.%s.s.pa2'% (rundate.strftime("%Y-%m-%d"),rundate.strftime("%Y%m%d")),
r'Load C:\SPAN\RiskFiles\%s\hkex.%s.s.pa2'% (rundate.strftime("%Y-%m-%d"),rundate.strftime("%Y%m%d")),
r'Load C:\SPAN\RiskFiles\%s\Jsc%s_1700.pa2'% (rundate.strftime("%Y-%m-%d"),rundate.strftime("%Y%m%d")),
r'Load C:\SPAN\Positions\%s\CME_Span_pos_%s.pos'% (rundate.strftime("%Y-%m-%d"),rundate.strftime("%Y-%m-%d")),
r'Load C:\SPAN\Positions\%s\HKFE_Span_pos_%s.pos'% (rundate.strftime("%Y-%m-%d"),rundate.strftime("%Y-%m-%d")),
r'Load C:\SPAN\Positions\%s\OSE_Span_pos_%s.pos'% (rundate.strftime("%Y-%m-%d"),rundate.strftime("%Y-%m-%d")),
r'Load C:\SPAN\Positions\%s\SGX_Span_pos_%s.pos'% (rundate.strftime("%Y-%m-%d"),rundate.strftime("%Y-%m-%d")),
r'Load C:\SPAN\Positions\%s\XCME_Span_pos_%s.pos'% (rundate.strftime("%Y-%m-%d"),rundate.strftime("%Y-%m-%d")),
r'Load C:\SPAN\Positions\%s\XNYM_Span_pos_%s.pos'% (rundate.strftime("%Y-%m-%d"),rundate.strftime("%Y-%m-%d")),
'Calc',
r'SaveCalcSummary C:\SPAN\Reports\%s\%s.csv' %(rundate.strftime("%Y-%m-%d"),rundate.strftime("%Y%m%d")),
r'Save C:\SPAN\Reports\%s\%s.xml' %(rundate.strftime("%Y-%m-%d"),rundate.strftime("%Y%m%d")),
r'LogSave C:\SPAN\Reports\%s\logtest.txt'%rundate.strftime("%Y-%m-%d")])
数据像这样在一行中出现,不知道为什么。
关注了这篇文章:在 python 中的文件中写入多行 需要一些指导。
解决方案
您可以加入字符串列表'\n'
:
OPATH.write(
'\n'.join(
[r'Load C:\SPAN\RiskFiles\%s\SGX.%s.s.pa2' % (rundate.strftime("%Y-%m-%d"), rundate.strftime("%Y%m%d")),
r'Load C:\SPAN\RiskFiles\%s\cfe.%s.s.pa2' % (rundate.strftime("%Y-%m-%d"), rundate.strftime("%Y%m%d")),
r'Load C:\SPAN\RiskFiles\%s\cme.%s.s.pa2' % (rundate.strftime("%Y-%m-%d"), rundate.strftime("%Y%m%d")),
r'Load C:\SPAN\RiskFiles\%s\hkex.%s.s.pa2' % (rundate.strftime("%Y-%m-%d"), rundate.strftime("%Y%m%d")),
r'Load C:\SPAN\RiskFiles\%s\Jsc%s_1700.pa2' % (rundate.strftime("%Y-%m-%d"), rundate.strftime("%Y%m%d")),
r'Load C:\SPAN\Positions\%s\CME_Span_pos_%s.pos' % (rundate.strftime("%Y-%m-%d"), rundate.strftime("%Y-%m-%d")),
r'Load C:\SPAN\Positions\%s\HKFE_Span_pos_%s.pos' % (rundate.strftime("%Y-%m-%d"), rundate.strftime("%Y-%m-%d")),
r'Load C:\SPAN\Positions\%s\OSE_Span_pos_%s.pos' % (rundate.strftime("%Y-%m-%d"), rundate.strftime("%Y-%m-%d")),
r'Load C:\SPAN\Positions\%s\SGX_Span_pos_%s.pos' % (rundate.strftime("%Y-%m-%d"), rundate.strftime("%Y-%m-%d")),
r'Load C:\SPAN\Positions\%s\XCME_Span_pos_%s.pos' % (rundate.strftime("%Y-%m-%d"), rundate.strftime("%Y-%m-%d")),
r'Load C:\SPAN\Positions\%s\XNYM_Span_pos_%s.pos' % (rundate.strftime("%Y-%m-%d"), rundate.strftime("%Y-%m-%d")),
'Calc',
r'SaveCalcSummary C:\SPAN\Reports\%s\%s.csv' % (rundate.strftime("%Y-%m-%d"), rundate.strftime("%Y%m%d")),
r'Save C:\SPAN\Reports\%s\%s.xml' % (rundate.strftime("%Y-%m-%d"), rundate.strftime("%Y%m%d")),
r'LogSave C:\SPAN\Reports\%s\logtest.txt' % rundate.strftime("%Y-%m-%d")]
)
)
OPATH.write('\n') # write the trailing newline
推荐阅读
- c++ - 如何在 mac 终端上运行带有 .txt 文件的 c++ 程序作为参数?
- json - 我想使用 jolt 将一个输入 json 转换为所需的格式
- ruby-on-rails - 是否可以将 wisper 与 Ruby GraphQL 集成?
- html - 移动 safari 和 chrome 上的背景视频故障
- jsf - 使用jsf上传多个文件
- excel - 如何使用 2 个分隔符解析文本文件
- ruby - shopify网站需要很长时间才能加载
- gradle - gradle install “错误:包 XXXXX 不存在”
- visual-studio - 在 Visual Studio 中,有没有办法发现所有引用特定对象的对象?
- qt - 在 Qt Quick 中,如何确保 ListView 的委托宽度等于视图的宽度?