Saint_HUFS 发表于 2021-12-1 20:23:30

简单的python数据处理,第一个解决的人发5元红包

图片中这种情况,想把每首唐诗的题目和内容变成一行,该怎么处理,谢谢

jackz007 发表于 2021-12-1 20:41:48

本帖最后由 jackz007 于 2021-12-1 20:44 编辑

      变成一行?具体什么样子,举个例子嘛。难道是把一首诗的题目和内容全部写在同一行上?如果是,那么,题目和内容如何衔接?

suchocolate 发表于 2021-12-1 21:07:51

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:15:54

本帖最后由 阿奇_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))


阿萨德按时 发表于 2021-12-2 08:38:37

{:10_279:}

伽羅~ 发表于 2021-12-2 09:20:35

{:10_254:}

qq1151985918 发表于 2021-12-2 11:43:40

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!")

Saint_HUFS 发表于 2021-12-2 16:18:51

suchocolate 发表于 2021-12-1 21:07


麻烦 给个支付宝账号,谢谢

Saint_HUFS 发表于 2021-12-2 16:19:30

qq1151985918 发表于 2021-12-2 11:43


麻烦给个支付宝账号,虽然不是第一个回答的,但也完美解决了,谢谢

Saint_HUFS 发表于 2021-12-2 16:20:06

阿奇_o 发表于 2021-12-2 00:15
如果每首诗歌之间都有空白行,那么还是比较简单的(6,7行代码而已),代码如下:

麻烦给个支付宝账号,虽然不是第一个回复的,但也完美解决了。谢谢

qq1151985918 发表于 2021-12-2 16:28:29

Saint_HUFS 发表于 2021-12-2 16:19
麻烦给个支付宝账号,虽然不是第一个回答的,但也完美解决了,谢谢

算了,也不为那几块钱,本来就是看到了随手一做。

Saint_HUFS 发表于 2021-12-2 16:40:44

qq1151985918 发表于 2021-12-2 16:28
算了,也不为那几块钱,本来就是看到了随手一做。

哈哈哈真的十分感谢,昨天一下午都没搞出来。自学的,感觉真正动手起来很坎坷,感谢您!
页: [1]
查看完整版本: 简单的python数据处理,第一个解决的人发5元红包