我從檔案中獲取 png 檔案名,然后使用正則運算式指定 4 位數字 png 檔案名,洗掉標點符號并將其保存到另一個檔案
讓我難過的是試圖將串列中的每個單獨值放在一個字串中,例如:
<div class="parent"><img class="img" title="" src="images/char/{HERE}.png" ></div>
然后將其保存到檔案中:
<div class="parent"><img class="img" title="" src="images/char/1432.png" ></div>
<div class="parent"><img class="img" title="" src="images/char/1250.png" ></div>
<div class="parent"><img class="img" title="" src="images/char/1324.png" ></div>
這是代碼
import re
import pyperclip
def remove_punc(string):
punc = '''!()-[]{};:'"\, <>./?@#$%^&*_~'''
for ele in string:
if ele in punc:
string = string.replace(ele, "")
return string
text_file = open(r'C:\My Web Sites\??image_data(1).txt', 'r')
s = text_file.read()
text_file.close()
string_pattern = r"\d{4}\."
regex_pattern = re.compile(string_pattern)
# find all the matches in string one
result = regex_pattern.findall(s)
result = [remove_punc(i) for i in result]
with open(r'C:\My Web Sites\1.txt', 'w') as fp:
for item in result:
# write each item on a new line
fp.write("%s\n" % item)
fp.close()
編輯
這是文本檔案的示例
<div class="cell-imgs"><div class="character-thumbnail"><img src="resources/images/bgs/5.png" class="character-thumbnail-background"><img class="character-thumbnail-image" src="resources/images/thumb/1535.png" onerror="this.src='resources/images/thumb/noimage.png';"><img rel="popover" tabindex="0" src="resources/images/frames/5.png" class="character-thumbnail-frame" data-html="true" data-trigger="focus" data-toggle="popover" data-placement="bottom" data-content="Rarity: 5★<br/>Level: 1/60<br/>Level: 0/4<br/>Level: 1/5<br/>: 0%" title="" data-original-title="<font color='red'><br/>(version)</font>"><img src="resources/images/elements/3.png" class="character-thumbnail-element"></div><div class="character-thumbnail"><img src="resources/images/bgs/5.png" class="character-thumbnail-background"><img class="character-thumbnail-image" src="resources/images/thumb/1510.png" onerror="this.src='resources/images/thumb/noimage.png';"><img rel="popover" tabindex="1" src="resources/images/frames/5.png" class="character-thumbnail-frame" data-html="true" data-trigger="focus" data-toggle="popover" data-placement="bottom" data-content="Rarity: 5★<br/>Level: 1/80<br/>Level: 4/4<br/>Level: 1/5<br/>: 0%" title="" data-original-title="<font color='#F96700'><br/>(version)</font>"><img src="resources/images/elements/5.png" class="character-thumbnail-element"></div><div class="character-thumbnail"><img src="resources/images/bgs/5.png" class="character-thumbnail-background"><img class="character-thumbnail-image" src="resources/images/thumb/1403.png" onerror="this.src='resources/images/thumb/noimage.png';"><img rel="popover" tabindex="2" src="resources/images/frames/5.png" class="character-thumbnail-frame" data-html="true" data-trigger="focus" data-toggle="popover" data-placement="bottom" data-content="Rarity: 5★<br/>Level: 1/80<br/>Level: 4/4<br/>Level: 1/5<br/>: 0%" title="" data-original-title="<font color='#071BA0'><br/>(version)</font>"><img src="resources/images/elements/4.png" class="character-thumbnail-element"></div><div class="character-thumbnail"><img src="resources/images/bgs/5.png" class="character-thumbnail-background"><img class="character-thumbnail-image" src="resources/images/thumb/1388.png" onerror="this.src='resources/images/thumb/noimage.png';"><img rel="popover" tabindex="3" src="resources/images/frames/5.png" class="character-thumbnail-frame" data-html="true" data-trigger="focus" data-toggle="popover" data-placement="bottom" data-content="Rarity: 5★<br/>Level: 1/80<br/>Level: 4/4<br/>Level: 1/5<br/>: 0%" title="" data-original-title="<font color='#F96700'><br/>(version)</font>"><img src="resources/images/elements/5.png" class="character-thumbnail-element"></div><div class="character-thumbnail"><img src="resources/images/bgs/6.png" class="character-thumbnail-background"><img class="character-thumbnail-image" src="resources/images/thumb/1323.png" onerror="this.src='resources/images/thumb/noimage.png';"><img rel="popover" tabindex="4" src="resources/images/frames/6.png" class="character-thumbnail-frame" data-html="true" data-trigger="focus" data-toggle="popover" data-placement="bottom" data-content="Rarity: 6★<br/>Level: 200/200<br/>Level: 4/4<br/>Level: 1/5<br/>: 150%<br/>1: 0/10<br/>2: 0/10<br/>3: 0/10<br/>" title="<font color='red'><br/>(version)</font>"><img src="resources/images/elements/3.png" class="character-thumbnail-element"></div><div class="character-thumbnail"><img src="resources/images/bgs/5.png" class="character-thumbnail-background"><img class="character-thumbnail-image" src="resources/images/thumb/1322.png"
輸出
1535
1510
1403
1388
1323
1322
uj5u.com熱心網友回復:
要創建您的檔案,您可以使用str.format. 例如:
s = """<div ><img title="" src="images/char/{}.png"></div>"""
result = [1432, 1250, 1324] # <-- your result with removed punctuations
with open("data.txt", "w") as fp:
for item in result:
print(s.format(item), file=fp)
創建data.txt內容:
<div class="parent"><img class="img" title="" src="images/char/1432.png"></div>
<div class="parent"><img class="img" title="" src="images/char/1250.png"></div>
<div class="parent"><img class="img" title="" src="images/char/1324.png"></div>
uj5u.com熱心網友回復:
在此處提供有關作者的更多資訊
這種模式應該可以解決(\d{4})\.(?=png)
問題
- 準確捕捉數字 4 次
- 并以 .png 結尾
如果您想添加支持,例如使用 jpeg,您可以將模式更改為(\d{4})\.(?=png|jpeg)
對于在線測驗,我對此進行了編碼,但它應該可以加載檔案然后使用 findall。剩下的作業是你的。
import re
string = "<div class=\"parent\"><img class=\"img\" title=\"\" src=\"images/char/1432.png\" ></div>\n<div class=\"parent\"><img class=\"img\" title=\"\" src=\"images/char/1250.png\" ></div>\n<div class=\"parent\"><img class=\"img\" title=\"\" src=\"images/char/1324.png\" ></div>\n<div class=\"parent\"><img class=\"img\" title=\"\" src=\"images/char/1324.jpeg\" ></div>"
pattern = re.compile(r'(\d{4})\.(?=png)')
print(pattern.findall(string))
輸出在哪里
['1432', '1250', '1324']
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/470716.html
上一篇:回呼函式在命令決議中的應用
