简单的python数据处理,第一个解决的人发5元红包
图片中这种情况,想把每首唐诗的题目和内容变成一行,该怎么处理,谢谢 本帖最后由 jackz007 于 2021-12-1 20:44 编辑变成一行?具体什么样子,举个例子嘛。难道是把一首诗的题目和内容全部写在同一行上?如果是,那么,题目和内容如何衔接? with open('data.txt', encoding='utf-8') as f:
txt = f.read().split('\n')
result = []
t = ''# 一首诗的临时存储
f = 0# 本诗是否已经开始存储
for line in txt:
if line:# 如果本行有字符串
if ',' in line:# 如果本行有逗号,就是诗句
f = 1
t += line
else:# 如果本行是诗的标题
t += line + ': '
else:# 如果行没有内容
if f:# 如果本诗已存储完毕,存储到result列表中
result.append(t)
t = ''
f = 0
# print(result)
with open('result.txt', 'w', encoding='utf-8') as f:
for line in result:
f.write(line + '\n') 本帖最后由 阿奇_o 于 2021-12-2 00:19 编辑
如果每首诗歌之间都有空白行,那么还是比较简单的(6,7行代码而已),代码如下:
res = []
with open('TangShi.txt', 'r', encoding='utf-8') as f:
# print(f.readlines())
# print(''.join(f.readlines()).split('\n\n')
temp = ''.join(f).split('\n\n')# 以空白行作为分隔,得到 诗歌的标题和内容 的一个列表
for i in range(0, len(temp), 2):# 每隔一项为一首诗
# print(temp)
# res.append(''.join(temp).replace('\n', ''))# 这标题和内容连在一起了,不太好。
res.append(''.join(f'【{temp}】 {temp}').replace('\n', ''))# 标题和内容 做一下格式化,完美~
print('\n'.join(res))
{:10_279:} {:10_254:} import re
with open("raw_Tang_poetry.txt", "r", encoding="utf-8") as f:
text = "\n\n" + f.read()
for title in re.findall(r"\n\n(.+)\n\n", text):
text = text.replace(f"\n\n{title}\n\n", f"\n\n《{title}》\n\n")
text = text.replace("\n", "").replace("《", "\n《")
with open("New_raw_Tang_poetry.txt", "w", encoding="utf-8") as g:
g.write(text)
print("OK!")
suchocolate 发表于 2021-12-1 21:07
麻烦 给个支付宝账号,谢谢 qq1151985918 发表于 2021-12-2 11:43
麻烦给个支付宝账号,虽然不是第一个回答的,但也完美解决了,谢谢 阿奇_o 发表于 2021-12-2 00:15
如果每首诗歌之间都有空白行,那么还是比较简单的(6,7行代码而已),代码如下:
麻烦给个支付宝账号,虽然不是第一个回复的,但也完美解决了。谢谢 Saint_HUFS 发表于 2021-12-2 16:19
麻烦给个支付宝账号,虽然不是第一个回答的,但也完美解决了,谢谢
算了,也不为那几块钱,本来就是看到了随手一做。 qq1151985918 发表于 2021-12-2 16:28
算了,也不为那几块钱,本来就是看到了随手一做。
哈哈哈真的十分感谢,昨天一下午都没搞出来。自学的,感觉真正动手起来很坎坷,感谢您!
页:
[1]