我正在撰寫一個向文本檔案中給出的人發送郵件的代碼。這是文本檔案:
X,[email protected]
Z,[email protected]
這是我的代碼:
with open("mail_list.txt","r",encoding ="utf-8") as file:
a = file.read()
b = a.split("\n")
d = []
for i in b:
c = i.split(",")
d.append(c)
for x in d:
for y in x:
print(x[0])
print(x[1])
輸出應該是:
X
[email protected]
Z
[email protected]
但它是:
X
[email protected]
X
[email protected]
Z
[email protected]
Z
[email protected]
這是為什么?我該如何解決?
uj5u.com熱心網友回復:
您正在迭代每一行中的列,但不使用列值:
for x in d:
for y in x:
print(y)
uj5u.com熱心網友回復:
請查看此解決方案。我相信這比當前的更優雅、更高效。不要僅僅依靠換行符拆分。而是以已經由 \n(換行符)分割的行的形式獲取所有資料,然后根據您的要求使用內容。
lines = []
with open('mail_list.txt') as f:
lines = f.readlines()
for line in lines:
info = line.split(',')
print(info[0])
print(info[1])
uj5u.com熱心網友回復:
您只需要對 list 進行迭代d。
with open("mail_list.txt", "r", encoding ="utf-8") as file:
a = file.read()
b = a.split("\n")
d = []
for i in b:
c = i.split(",")
d.append(c)
for x in d:
print(x[0])
print(x[1])
為了更簡單,您可以逐行讀取檔案并同時處理它。strip() 方法洗掉任何前導(開頭的空格)和尾隨(結尾的空格或 EOL)字符。
with open("mail_list.txt", "r", encoding ="utf-8") as file:
for line in file:
line_s = line.split(",")
print(line_s[0])
print(line_s[1].strip())
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/325093.html
上一篇:如何使用C中的檔案進行此操作?
