Skip to main content
 首页 » 编程设计

python之调用 Python 文件后 Excel CSV 输出出现错误

2025年05月04日19freeliver54

目前正在努力处理 .csv 中的以下输出,其中它们是各种随机字符,其中是玩家的名称和值,而这些字符不应该存在

(我在下面给出了输出图片)

我想知道我在努力消除随机字符的代码中出了什么问题

我正在尝试删除下面的字符,例如 Â、Ã、©、‰ 等。 有什么建议吗?

Python 代码

#importing 
 
import requests 
from bs4 import BeautifulSoup 
import pandas as pd 
 
headers = {'User-Agent':  
       'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like  
Gecko) Chrome/47.0.2526.106 Safari/537.36'} 
 
#calling websites 
page = "https://www.transfermarkt.co.uk/transfers/transferrekorde/statistik/top/plus/0/galerie/0?saison_id=2000" 
pageTree = requests.get(page, headers=headers) 
pageSoup = BeautifulSoup(pageTree.content, 'html.parser') 
 
#calling players names 
Players = pageSoup.find_all("a", {"class": "spielprofil_tooltip"}) 
#Let's look at the first name in the Players list. 
Players[0].text 
 
#calling value of players 
Values = pageSoup.find_all("td", {"class": "rechts hauptlink"}) 
#Let's look at the first name in the Values list. 
Values[0].text 
 
PlayersList = [] 
ValuesList = [] 
 
for i in range(0,25): 
   PlayersList.append(Players[i].text) 
   ValuesList.append(Values[i].text) 
 
df = pd.DataFrame({"Players":PlayersList,"Values":ValuesList}) 
 
df.to_csv('2000.csv', index=False) 
 
df.head() 

============================================= =====================

我的 Excel 输出

请您参考如下方法:

... 
utf8_bom = '\xEF\xBB\xBF' 
with open('2000.csv', 'w') as csv_file: 
    csv_file.write(utf8_bom) 
    df.to_csv(csv_file, index=False, mode='a') 

说明: Material list 是byte order mark (q.v.)。如果 Excel 在 CSV 文件的开头找到它,它会使用它来确定编码,在您的情况下是 UTF-8(默认编码 - 正确 - 对于 Python 3)。


编辑

正如 Mark Tolonen 所指出的,上面的紧凑版本是以下代码:

df.to_csv('2000.csv', encoding='utf-8-sig', index=False) 

编码名称中的-sig代表“签名”,即开头的BOM,微软软件使用它来检测编码。另见 Encodings and Unicode节codecs手册。