我想問一下如何更改代碼以獲得輸出:
Nigel;UK;19
John;US;22
Carol;Germany;26
沒有這個輸入(是串列嗎?):
['Nigel', 'UK', '19']
['John', 'US', '22']
['Carol', 'Germany', '26']
代碼:
import csv
with open('friends.csv', 'r') as source:
reader = csv.reader(source)
for line in reader:
print(line)
我認為現在存在一些說明,但我沒有找到它。
謝謝
uj5u.com熱心網友回復:
您將輸出作為串列,因為這就是csv.reader()它的作用!它讀取 csv 檔案的每一行,將其轉換為考慮逗號和轉義規則的串列,然后回傳該串列。
如果您不關心 csv 檔案的每個單獨元素,只需將該檔案作為常規檔案讀取:
with open("filename.csv", "r") as f:
for line in f:
print(line, end="")
該end=""引數阻止print()添加自己的換行符,因為line檔案中已經包含換行符
或者,您仍然可以將其作為 csv 檔案讀取,但str.join()在列印之前讀取結果串列。如果您將 csv 檔案的行用作其他地方的串列,但您只想在此處列印檔案,請使用此選項
with open('friends.csv', 'r') as source:
reader = csv.reader(source)
for line in reader:
print(";".join(line))
uj5u.com熱心網友回復:
嘗試通過*運算子解包串列元素,并將自定義分隔符傳遞給print:
import csv
with open('friends.csv', 'r') as source:
reader = csv.reader(source)
for line in reader:
print(*line, sep=';')
結果:
Nigel;UK;19
John;US;22
Carol;Germany;26
一種更簡單(更有效)的方法是將檔案內容作為字串讀入,然后用冒號替換所有逗號:
with open('friends.csv', 'r') as source:
print(source.read().replace(',', ';'))
請注意,這假設您的內容friends.csv如下:
Nigel,UK,19
John,US,22
Carol,Germany,26
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/337584.html
