我所拥有的是一个CSV文件,其中标题为“keyword”,标题下的每个单元格都包含文本,如下所示:
Keyword
Lions Tigers Bears
Dog Cat
Fish
Shark Guppie
我要做的是将该列表中的每个短语解析为单个单词,以便最终产品如下所示:
Keyword
Lion
Tigers
Bear
Dog
Cat...
现在,我的代码获取了CSV文件,并将列表拆分为单独的部分,但仍然没有创建统一的列。
datafile = open(b'C:\Users\j\Desktop\helloworld.csv', 'r')
data = []
for row in datafile:
data.append(row.strip().split(","))
white = row.split()
print (white)
我的输出如下: ['关键词'] ['狮子','老虎'] ['海豚','熊','斑马'] ['狗','猫']
我知道可能的解决方案是使用lineterminator ='\ n',但我不知道如何将其合并到我的代码中。非常感谢任何帮助!
**已编辑 - 源CSV没有用逗号分隔每个短语中的单词
答案 0 :(得分:1)
在列表中使用extend
代替append
,将列表中的所有项目添加到另一个项目中:
datafile = open(b'C:\Users\j\Desktop\helloworld.csv', 'r')
data = []
for row in datafile:
data.extend(row.strip().split())
print(data)
要删除单个条目周围的更多空格,请使用
datafile = open(b'C:\Users\j\Desktop\helloworld.csv', 'r')
data = []
for row in datafile:
data.extend(item.strip() for item in row.split())
print(data)
另外,要安全地阅读文件,您可以使用with
语句(您不必再处理关闭文件了):
with open('C:\Users\j\Desktop\helloworld.csv', 'r') as datafile:
data = []
for row in datafile:
data.extend(item.strip() for item in row.split())
print(data)
编辑:在OP澄清之后,我删除了","
中的split
参数,以便在空格而不是在逗号上进行拆分。
答案 1 :(得分:0)
你只需要分开阅读:
with open("in.txt","r+") as f:
data = f.read().split()
f.seek(0) # go back to start of file
f.write("\n".join(data)) # write new data to file
['Keyword', 'Lions', 'Tigers,', 'Bears', 'Dog', 'Cat', 'Fish', 'Shark', 'Guppie']
答案 2 :(得分:0)
您应该能够使用此代码来读取您的文件。用你拥有的文件替换文件名。我的文件内容正是您在上面发布的内容。
keyword = "Keyword"
with open("testing.txt") as file:
data = file.read().replace("\n", " ").split(" ")
for item in data:
if item == keyword:
print("%s" % keyword)
else:
print(" %s" % item)
输出:
Keyword
Lions
Tigers
Bears
Dog
Cat
Fish
Shark
Guppie
Keyword
Dog
Something
Else
Entirely