Python:将列表中的元素写入不带括号或引号的 CSV 文件
Python: writing elements from a list into CSV file without brackets or quotes
我正在努力处理写入 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)]))
当我打印 lang_skills 时,它看起来像这样:
['Urdu', 'Ukrainian', 'Swedish']
在最后一步,我想将lang_skills写入一个新的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"; ...
...
您正在尝试将 字符串 写入 CSV,而不是列表;您想将字符串 "Urdu, Ukrainian, Swedish"
写入文件,因此您需要事先生成该字符串。尝试使用 ", ".join(lang_skills)
.
加入语言
您可以将列表转换为 pandas 数据框,要创建 CSV,您需要列名和值列表:
import pandas as pd
my_list = ['a', 'b', 'c']
df = pd.DataFrame({'col': my_list})
df.to_csv("path/csv_name.csv")
我正在努力处理写入 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)]))
当我打印 lang_skills 时,它看起来像这样:
['Urdu', 'Ukrainian', 'Swedish']
在最后一步,我想将lang_skills写入一个新的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"; ...
...
您正在尝试将 字符串 写入 CSV,而不是列表;您想将字符串 "Urdu, Ukrainian, Swedish"
写入文件,因此您需要事先生成该字符串。尝试使用 ", ".join(lang_skills)
.
您可以将列表转换为 pandas 数据框,要创建 CSV,您需要列名和值列表:
import pandas as pd
my_list = ['a', 'b', 'c']
df = pd.DataFrame({'col': my_list})
df.to_csv("path/csv_name.csv")