我是一个蟒蛇初学者试图编写一个程序,打印出电视飞行员的每一行(txt文件),如果该行是对话。
角色名称将始终立即进行对话块(可以是一行或多行)。并且总会有一个空白行表示对话块的结束。我将脚本的每一行都作为script_list的一个元素。我将所有字符名称作为character_list的元素。可能有更好的方法来解决这个问题,但是现在我正在尝试找到一个python命令,它可以识别script_list的一个元素何时是一个字符名,然后打印出script_list的后续元素,直到它到达一个空行。
作为一个例子,对于以下脚本,我只想打印:“看起来她又迟到了。”然后打印出鲍勃对话的每一行。
ACT I
INT。办公室会议室 - 早上好
鲍勃和约翰不安地盯着对方。 < - 不对话。BOB看起来她又迟到了。 < - 对话立即继续进行 说话的人物。
约翰瞥了一眼手表。JOHN [多行多行的文本块]
莎拉走进房间。
答案 0 :(得分:0)
我想你想要这样的东西:
if any(line.startswith(name) for name in character_list):
如果True
启动列表中的任何名称,则为line
。这假定您的列表全部为大写,否则您将匹配“阶段方向”,也以名称开头。
您可以设置dialogue = True
标记,然后在到达空白行时重置它。
答案 1 :(得分:0)
只是为了让你离开这里:
characterNames = ["JOHN", "BOB", "SARAH"]
play = ["These are stage directions", "BOB This is printed", "This is case sensitive, Sarah"]
for line in play:
for name in characterNames:
if name in line:
print(line)
请注意,这假设您没有在对话框中使用完整上限。