我對 Python 相當陌生,我撰寫了一個函式來讀取檔案并從檔案中去除奇怪的符號。
def clean_string(x):
return x.strip().strip('"').strip("'").lower()
并讀取檔案
with open(fileName, 'r', errors='replace', encoding='utf-8') as f:
data = f.readlines()
urls = []
for line in data:
cleanName = clean_string(line.split(',')[0])
cleanServer = clean_string(line.split(',')[1])
name = request.quote(cleanName.encode('utf-8'))
server = request.quote(cleanServer.encode('utf-8'))
url = baseUrl.replace('<name>', name).replace('<server>', server)
urls.append(url)
雖然cleanName 作業得很好,但我得到的串列索引超出了cleanServer 的范圍,當我列印帶有[1] 索引的行時,它也會列印輸出,這意味著索引存在,我做錯了什么?
示例資料:
"Bicmex"
,"ravencrest"
"Fleshcraft"
,"archimonde"
"Satan?"
,"stormscale"
"Jàg?r"
uj5u.com熱心網友回復:
您的資料包含一行沒有服務器。您需要檢查并列印該行:
使固定:
with open(fileName, 'r', errors='replace', encoding='utf-8') as f:
data = f.readlines()
urls = []
for line in data:
splits = line.split(',', 1) # maximal 2 parts, no need to split twice
cleanName = clean_string(splits[0])
name = request.quote(cleanName.encode('utf-8'))
if len(splits) == 2:
cleanServer = clean_string(splits[1])
server = request.quote(cleanServer.encode('utf-8'))
url = baseUrl.replace('<name>', name).replace('<server>', server)
urls.append(url)
else:
print(f"No Server given: '{line}'")
這適用于以下檔案:
"Bicmex","ravencrest"
"Fleshcraft","archimonde"
"Satan?","stormscale"
"Jàg?r"
要處理具有交替行的檔案,請使用:
with open(fileName, 'r', errors='replace', encoding='utf-8') as f:
data = f.readlines()
data = ''.join( zip(data[::2], data [1::2])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/400233.html
標籤:Python
