我是一名初学 Python 程序员,在本论坛中寻找解决我的问题的方案时一直不太成功。可能是因为我无法用正确的行话描述我的问题 - 如果是这种情况,我在此提前道歉。
我使用 BeautifulSoup 从 HTML 文档中提取了一个字符串列表。我想将这个字符串列表转换为 CSV(每行一个字符串,单列),但是我的程序将每个字符串的每个字符放在自己的列中。
但是当我的字符串包含空格时,例如字符串“test hello” - 输出的 CSV 文件按照单独的列分隔单词,如下所示: 我的代码有什么问题?我怎么也想不出来。
如果此论坛中已经存在解决方案,请提供链接。谢谢!
我使用 BeautifulSoup 从 HTML 文档中提取了一个字符串列表。我想将这个字符串列表转换为 CSV(每行一个字符串,单列),但是我的程序将每个字符串的每个字符放在自己的列中。
import csv
h3List= []
soup = BeautifulSoup(open('test.html'),'html.parser')
h3 = soup.find_all('h3')
for text in h3:
h3List.append(text.text)
with open('h3List.csv','w') as f:
writer = csv.writer(f)
for item in h3List:
print(item)
writer.writerow(item)
如上图所示,输出的csv文件将每个字符串中的每个字符都放在单独的列中。我希望“test”字符串只在一个列中。
我尝试了这个解决方案:
for item in h3List:
print(item)
writer.writerow([item])
但是当我的字符串包含空格时,例如字符串“test hello” - 输出的 CSV 文件按照单独的列分隔单词,如下所示: 我的代码有什么问题?我怎么也想不出来。
如果此论坛中已经存在解决方案,请提供链接。谢谢!
writerow(['test hello'])
不会将输入视为两列。你是否尝试使用简单文本编辑器而不是电子表格编辑器查看 CSV 文件?你实际上在每一行中看到了"test,hello"
吗? - Alexander Pivovarov