Python:将列表中的元素写入CSV文件,不带括号或引号

2024-06-01 12:15:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力处理写入CSV文件的列表元素

我编写了一个Python脚本,从CSV文件中选择了大约25种人类语言,并将它们放入一个列表中。其想法是随机创建内容,这些内容可能会导致机器学习的虚假简历:

# languages
all_langs = []
    
#populate languges from a central language csv
with open('sprachen.csv', newline='', encoding="utf-8") as csvfile:
    file_reader = csv.reader(csvfile, delimiter=',', quotechar='|')
    for row in file_reader:
        if row[0] == "Sprache":
            continue
        else:
            all_langs.append(format(row[0]))

之后,我创建一个新的空列表,并用0到3范围内的初始语言填充它:

lang_skills = []
ran_number = random.randint(1,3)
for i in range(0,ran_number):
    lang_skills.append(str(all_langs[random.randint(0,len(all_langs)-1)]))

当我打印语言技能时,它看起来像这样:

['Urdu', 'Ukrainian', 'Swedish']

在最后一步中,我想将语言技能写入一个新的CVS文件中

with open('liste.csv', 'a+', newline='', encoding="utf-8") as csvfile:
    writer = csv.writer(csvfile, delimiter=';',quotechar='"', quoting=csv.QUOTE_ALL)
    writer.writerow(lang_skills)

但是,CSV如下所示:

Language
"Urdu";"Ukrainian";"Swedish"
...

如何像这样写入输出:

Language
"Urdu, Ukrainian, Swedish"; ...
...

Tags: 文件csvcsvfile语言列表langallskills
2条回答

您试图将字符串写入CSV,而不是列表;您希望将字符串"Urdu, Ukrainian, Swedish"写入文件,因此需要事先生成该字符串。尝试使用", ".join(lang_skills)加入语言

您可以将列表转换为数据框,要创建CSV,您需要列名称和值列表:

import pandas as pd
my_list = ['a', 'b', 'c']
df = pd.DataFrame({'col': my_list})
df.to_csv("path/csv_name.csv")

相关问题 更多 >