我用.txt寫了一個戲劇劇本,并試圖通過它來獲取人物說的臺詞串列。 下面是一個布局的例子
GARVICK
不會發生的。我們是來幫忙的,而不是讓事情變得更糟!。
(笑)
這將是一個很好的例子。炙手可熱的人啊,離開辦公室來到了
為了一些行動。你有什么問題?
萊昂
那些企業高管對我們在這里的行動至關重要
黑社會的行動至關重要。他們會被掐死的。我們必須阻止它! 我需要有人
進去 和出來真正的快速。 我知道你是這項作業的人選!
你必須表現得很好,我知道你的風格,有點苛刻,但這很好!"。
GARVICK
告訴我更多。
當我把這個regex復制到pythex.org時:
([a-zA-Zs] )
(. )
我得到的結果是:
匹配1。
1. GARVICK #(this is fine)
2.不會發生。我們是來幫忙的,而不是讓事情變得更糟!。
匹配2
1.離開辦公室,來到了
2. 黑社會的一些行動。What's your problem!
匹配3。
1. LEON 那些企業高管對我們的運作至關重要 在這里
2.黑社會。他們會被掐死。我們必須要阻止它! 我需要有人
第四場比賽
1.
2. 你要好好表現,我知道你的風格,有點苛刻,但這很好!。
然而,在理想情況下,我相信我想要的是下面這樣的東西。 有什么方法可以調整我的詞條來做到這一點嗎?
匹配1。
1. GARVICK
2.不會發生。我們是來幫忙的,而不是讓事情變得更糟!。
第二場比賽
1. GARVICK
2. 這'將是一個很好的機會。
3.熱門人物誒,離開辦公室來到地下世界為了一些行動。
4.什么是你的問題!?
匹配3
1. LEON
2. 那些企業高管對我們在這里的地下世界的運作至關重要。
3. 他們會被掐死的。
4.我們必須阻止它!
5.我需要有人能進入和真正快速地出來。
6.而且我知道你是這項作業的人選!
7. 你要好好表現,我知道你的風格,有點苛刻,但這很好!。
匹配4。
1.GARVICK
2. 告訴我更多。
uj5u.com熱心網友回復:
Regex是強大的,當你對你所處理的元素沒有一個(確定的)概念時,它是非常有用的。否則,它就會大大增加復雜性,而且在我看來,它永遠都不應該是你要使用的第一個工具。
在這種情況下,你有一個固定的布局,以及一個固定的串列,你想用它來分割你的文本。
示例被修改為盡可能多地合并已被分割成多行的行。還包括對每個字符的輸出,在單個文本檔案中的對話。需要Python 3.9以上的walrus操作,如果小于3.9,請用line.strip()替換所有出現的 "current_line"。
# Set up storage variables。
演員 = ['GARVICK', 'LEON', ]
dialogue_collated = []
current_text = []
current_actor = ""/span>
with open('dialog.txt', 'r') as f:
for line in f.readlines():
if (current_line:=line.strip()) in actors:
dialogue_collated.append((current_actor, current_text))
current_actor = current_line
current_text = ""/span>
繼續 繼續
# 積累當前的對話集
if current_line[-1:] in ("! ", ".", ")")。)
current_text = line.strip() " 。
"/span>
else:
current_text = current_line " ": current_text = current_line " ".
# 洗掉第一個空條目。
dialogue_collated.pop(0)
print(daughter_collated)
for entry in dialogue_collated:
print(entry[0] '
' entry[1])
with open(entry[0] 。 replace(' ', '') ' .txt', ' w ') as fo:
fo.write(entry[1] )
輸出將是一個圖元的串列,其中每個圖元代表當前的說話人和當前的對話集。這將被寫入每個單獨的文本檔案中--重要的部分是'w ',這意味著如果有檔案存在,文本將被追加,而不是覆寫現有的檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/323788.html
標籤:
