在 python 中分割多行字符串
Partitioning multiline string in python
我正在使用 python 脚本运行一个 unix 命令,我将它的输出(多行)存储在一个字符串变量中。
现在我必须使用该多行字符串将其分成三个部分来制作 3 个文件(由模式 End---End 分隔) .
这是我的输出变量包含的内容
Output = """Text for file_A
something related to file_A
End---End
Text for file_B
something related to file_B
End---End
Text for file_C
something related to file_C
End---End"""
现在我想要三个文件 file_A、file_B 和 file_C 用于此输出值:-
file_A
的内容
Text for file_A
something related to file_A
file_B
的内容
Text for file_B
something related to file_B
file_C
的内容
Text for file_C
something related to file_C
此外,如果 Output 的相应文件没有任何文本,那么我不希望创建该文件。
例如
Output = """End---End
Text for file_B
something related to file_B
End---End
Text for file_C
something related to file_C
End---End"""
现在我只想创建 file_B 和 file_C,因为 file_A
没有文本
file_B
的内容
Text for file_B
something related to file_B
file_C
的内容
Text for file_C
something related to file_C
如何在 python 中实现它?是否有任何模块可以使用一些分隔符对多行字符串进行分区?
谢谢:)
您可以使用split()
方法:
>>> pprint(Output.split('End---End'))
['Text for file_A\nsomething related to file_A\n',
'\nText for file_B\nsomething related to file_B\n',
'\nText for file_C\nsomething related to file_C\n',
'']
由于最后有一个'End---End'
,最后拆分returns''
,所以可以指定拆分个数:
>>> pprint(Output.split('End---End',2))
['Text for file_A\nsomething related to file_A\n',
'\nText for file_B\nsomething related to file_B\n',
'\nText for file_C\nsomething related to file_C\nEnd---End']
Output = """Text for file_A
something related to file_A
End---End
Text for file_B
something related to file_B
End---End
Text for file_C
something related to file_C
End---End"""
ofiles = ('file_A', 'file_B', 'file_C')
def write_files(files, output):
for f, contents in zip(files, output.split('End---End')):
if contents:
with open(f,'w') as fh:
fh.write(contents)
write_files(ofiles, Output)
我正在使用 python 脚本运行一个 unix 命令,我将它的输出(多行)存储在一个字符串变量中。 现在我必须使用该多行字符串将其分成三个部分来制作 3 个文件(由模式 End---End 分隔) .
这是我的输出变量包含的内容
Output = """Text for file_A
something related to file_A
End---End
Text for file_B
something related to file_B
End---End
Text for file_C
something related to file_C
End---End"""
现在我想要三个文件 file_A、file_B 和 file_C 用于此输出值:-
file_A
的内容Text for file_A
something related to file_A
file_B
的内容Text for file_B
something related to file_B
file_C
的内容Text for file_C
something related to file_C
此外,如果 Output 的相应文件没有任何文本,那么我不希望创建该文件。
例如
Output = """End---End
Text for file_B
something related to file_B
End---End
Text for file_C
something related to file_C
End---End"""
现在我只想创建 file_B 和 file_C,因为 file_A
没有文本file_B
的内容Text for file_B
something related to file_B
file_C
的内容Text for file_C
something related to file_C
如何在 python 中实现它?是否有任何模块可以使用一些分隔符对多行字符串进行分区?
谢谢:)
您可以使用split()
方法:
>>> pprint(Output.split('End---End'))
['Text for file_A\nsomething related to file_A\n',
'\nText for file_B\nsomething related to file_B\n',
'\nText for file_C\nsomething related to file_C\n',
'']
由于最后有一个'End---End'
,最后拆分returns''
,所以可以指定拆分个数:
>>> pprint(Output.split('End---End',2))
['Text for file_A\nsomething related to file_A\n',
'\nText for file_B\nsomething related to file_B\n',
'\nText for file_C\nsomething related to file_C\nEnd---End']
Output = """Text for file_A
something related to file_A
End---End
Text for file_B
something related to file_B
End---End
Text for file_C
something related to file_C
End---End"""
ofiles = ('file_A', 'file_B', 'file_C')
def write_files(files, output):
for f, contents in zip(files, output.split('End---End')):
if contents:
with open(f,'w') as fh:
fh.write(contents)
write_files(ofiles, Output)