![](/img/trans.png)
[英]Having Problems reading .xlsx and .csv files in Python using Pandas
[英]having problems with python csv
我在使用 python csv 模塊時遇到問題我試圖在 csv 文件中寫一個換行符 是否有任何原因它不起作用?
代碼:
csv writing function
def write_response_csv(name,games,mins):
with open("sport_team.csv",'w',newline='',encoding='utf-8') as csv_file:
fieldnames=['Vardas','Žaidimai','Minutės']
writer = csv.DictWriter(csv_file,fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'Vardas':name,'Žaidimai':games,"Minutės":mins})
with requests.get(url,headers=headers) as page:
content = soup(page.content,'html.parser')
content = content.findAll('table',class_='table01 tablesorter')
names = find_name(content)
times = 0
for name in names:
matches = find_matches(content,times)
min_in_matches = find_min(content,times)
times +=1
csv_file = write_response_csv(name,matches,min_in_matches)
try:
print(name,matches,min_in_matches)
except:
pass
當您調用 write_response_csv 函數時,它會重新打開文件並再次從 csv 文件的第 1 行開始,並且您傳遞給該函數的每一行新數據都會覆蓋之前寫入的數據。 您可以嘗試在編寫器函數范圍之外創建 csv 文件,並將編寫器函數設置為追加模式而不是寫入模式。 這將確保它將數據寫入下一個空的 csv 行,而不是從第 1 行開始。
#Outside of function scope
fieldnames=['Vardas','Žaidimai','Minutės']
#Create sport_team.csv file w/ headers
with open('sport_team.csv', 'w',encoding='utf-8') as csv_file:
writer = csv.DictWriter(csv_file, fieldnames)
writer.writeheader()
#Write response function
def write_response_csv(name,games,mins):
with open('sport_team.csv','a',encoding='utf-8') as csv_file:
writer = csv.DictWriter(csv_file, fieldnames)
writer.writerow({'Vardas':name,'Žaidimai':games,"Minutės":mins})
注意:如果您重復使用這個腳本來不斷地向同一個文件添加新的數據行,您將遇到同樣的問題,因為每次運行它時,創建 csv 文件的代碼實際上將重新創建一個空白的 Sport_team.csv 文件標題。 如果您想重復使用代碼來不斷添加新數據,我會考慮使用 os.path 並利用它來確認 Sport_team.csv 是否已經存在,如果存在,則不要在字段名稱之后運行該代碼。
嘗試使用 metabob,它會為您查找代碼錯誤。 我一直在使用它作為 Python 初學者,並且已經非常成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.