我有一个文本文件,其中包含我想导入到Access数据库中的数据。文本文件包含一些我想排成一行的段落。我用“ @@@”分隔了每一行
这是我所拥有的示例:
@@@我想去学校,因为这很有趣。 Blah Blah Blah Blah。我今天很开心。 @@@我无缘无故高兴。 Blah Blah Blah Blah Blah。我今天很开心。
我希望这样显示:
ID |报告文字
1 |我想去学校,因为它很有趣。布拉布拉 布拉布拉我今天玩得很开心。
2 |我无缘无故开心。 Blah Blah Blah Blah Blah。我是 今天玩得很开心。
但是,我知道我已经接近我的代码,但是我知道了:
ID |报告文字
1 |我想去学校,因为它很有趣。布拉布拉 布拉布拉。
2 |我今天玩得很开心。
3 |我无缘无故开心。 Blah Blah Blah Blah Blah。我是
4 |我今天玩得很开心。
我尝试使用IF语句仅在该行中有“ @@@”的情况下添加ID,但是我无法使其正常工作。如果我这样做的话,我认为它应该可以工作。我有ID和reporttext,使用分号作为分隔符。
这是我的代码:
new BooleanQuery.Builder().add(query1, BooleanClause.OCCUR.MUST)
.add(query2, BooleanClause.OCCUR.MUST_NOT)
.build();
答案 0 :(得分:3)
您可以将split("@@@")
和enumerate(iterable,start_index)
与生成器表达式结合使用:
t = """@@@ I would like to go to school because it's so much fun. Blah Blah Blah Blah. I am having so much fun today. @@@ I am so happy for no reason. Blah Blah Blah Blah Blah. I am having so much fun today."""
# split and enumerate(starting at 1)
# the if conditional inside the generator expression eleminates empty lines
data = list(enumerate( (x.strip() for x in t.split("@@@") if x.strip()), 1))
print(data)
print("")
import csv
with open("t.txt", "w", newline = "") as csvfile:
writer = csv.writer(csvfile, delimiter=';')
writer.writerow(('ID', 'Reporttext'))
writer.writerows(data)
print( open("t.txt").read())
输出:
# data
[(1, "I would like to go to school because it's so much fun. Blah Blah Blah Blah. I am having so much fun today."),
(2, 'I am so happy for no reason. Blah Blah Blah Blah Blah. I am having so much fun today.')]
# file
ID;Reporttext
1;I would like to go to school because it's so much fun. Blah Blah Blah Blah. I am having so much fun today.
2;I am so happy for no reason. Blah Blah Blah Blah Blah. I am having so much fun today.
Doku: