我有一個腳本,它下載一個文本檔案,然后提取所有 URL,然后創建一個新檔案來保存這些 URL。但與其將其保存到本地磁盤,我更喜歡 Python 來記住文本檔案的內容,甚至可能使它等于一個變數,所以我可以用于下一步。這樣,就不需要一直保存檔案到本地磁盤并在以后添加命令來洗掉這些檔案。
這可能嗎?如果可以,怎么做?
這是代碼:
import urllib.request
import os
import re
# download text file to disk
urllib.request.urlretrieve("https://www.w3.org/TR/PNG/iso_8859-1.txt", "iso_input.txt")
# extract all URLs from input file then insert into new output file
with open("iso_input.txt", "r") as file:
for line in file:
urls = re.findall('https?://[^\s<>"] [|www\.^\s<>"] ', line)
print(*urls, file=open("iso_output.txt", "a"))
uj5u.com熱心網友回復:
我想你正在尋找io.StringIO:
使用記憶體中文本緩沖區的文本流。
# Open input file and output "file"
with open("iso_input.txt", "r") as file, io.StringIO() as output:
for line in file:
urls = re.findall('https?://[^\s<>"] [|www\.^\s<>"] ', line)
print(*urls, file=output) # print to in-memory buffer
# Save "output file content" as variable
urls = output.getvalue()
# Do something with the retrieved urls
print(urls)
在旁注中,https://www.w3.org/TR/PNG/iso_8859-1.txt不包含任何 URL,正如@Corralien正確指出的那樣
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/425907.html
