鱼C论坛

 找回密码
 立即注册
查看: 1244|回复: 11

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

[复制链接]
发表于 2021-12-1 20:23:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
图片中这种情况,想把每首唐诗的题目和内容变成一行,该怎么处理,谢谢
最佳答案
2021-12-1 21:07:51
  1. with open('data.txt', encoding='utf-8') as f:
  2.     txt = f.read().split('\n')

  3. result = []
  4. t = ''  # 一首诗的临时存储
  5. f = 0  # 本诗是否已经开始存储
  6. for line in txt:
  7.     if line:  # 如果本行有字符串
  8.         if ',' in line:  # 如果本行有逗号,就是诗句
  9.             f = 1
  10.             t += line
  11.         else:  # 如果本行是诗的标题
  12.             t += line + ': '
  13.     else:  # 如果行没有内容
  14.         if f:  # 如果本诗已存储完毕,存储到result列表中
  15.             result.append(t)
  16.             t = ''
  17.             f = 0
  18. # print(result)
  19. with open('result.txt', 'w', encoding='utf-8') as f:
  20.     for line in result:
  21.         f.write(line + '\n')
复制代码
QQ截图20211201201809.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-1 20:41:48 | 显示全部楼层

回帖奖励 +1 鱼币

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

      变成一行?具体什么样子,举个例子嘛。难道是把一首诗的题目和内容全部写在同一行上?如果是,那么,题目和内容如何衔接?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-1 21:07:51 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +1 鱼币

  1. with open('data.txt', encoding='utf-8') as f:
  2.     txt = f.read().split('\n')

  3. result = []
  4. t = ''  # 一首诗的临时存储
  5. f = 0  # 本诗是否已经开始存储
  6. for line in txt:
  7.     if line:  # 如果本行有字符串
  8.         if ',' in line:  # 如果本行有逗号,就是诗句
  9.             f = 1
  10.             t += line
  11.         else:  # 如果本行是诗的标题
  12.             t += line + ': '
  13.     else:  # 如果行没有内容
  14.         if f:  # 如果本诗已存储完毕,存储到result列表中
  15.             result.append(t)
  16.             t = ''
  17.             f = 0
  18. # print(result)
  19. with open('result.txt', 'w', encoding='utf-8') as f:
  20.     for line in result:
  21.         f.write(line + '\n')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-12-2 00:15:54 | 显示全部楼层

回帖奖励 +1 鱼币

本帖最后由 阿奇_o 于 2021-12-2 00:19 编辑

如果每首诗歌之间都有空白行,那么还是比较简单的(6,7行代码而已),代码如下:

  1. res = []
  2. with open('TangShi.txt', 'r', encoding='utf-8') as f:
  3.     # print(f.readlines())
  4.     # print(''.join(f.readlines()).split('\n\n')
  5.     temp = ''.join(f).split('\n\n')  # 以空白行作为分隔,得到 诗歌的标题和内容 的一个列表
  6.     for i in range(0, len(temp), 2):  # 每隔一项为一首诗
  7.         # print(temp[i:i+2])
  8.         # res.append(''.join(temp[i:i+2]).replace('\n', ''))  # 这标题和内容连在一起了,不太好。
  9.         res.append(''.join(f'【{temp[i]}】 {temp[i+1]}').replace('\n', ''))  # 标题和内容 做一下格式化,完美~

  10. print('\n'.join(res))
复制代码


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-2 08:38:37 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-2 09:20:35 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-2 11:43:40 | 显示全部楼层
  1. import re

  2. with open("raw_Tang_poetry.txt", "r", encoding="utf-8") as f:
  3.     text = "\n\n" + f.read()
  4.    
  5. for title in re.findall(r"\n\n(.+)\n\n", text):
  6.     text = text.replace(f"\n\n{title}\n\n", f"\n\n《{title}》\n\n")

  7. text = text.replace("\n", "").replace("《", "\n《")

  8. with open("New_raw_Tang_poetry.txt", "w", encoding="utf-8") as g:
  9.     g.write(text[1:])

  10. print("OK!")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-2 16:18:51 | 显示全部楼层

麻烦 给个支付宝账号,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-2 16:19:30 | 显示全部楼层

麻烦给个支付宝账号,虽然不是第一个回答的,但也完美解决了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

麻烦给个支付宝账号,虽然不是第一个回复的,但也完美解决了。谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

算了,也不为那几块钱,本来就是看到了随手一做。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-2 16:40:44 | 显示全部楼层
qq1151985918 发表于 2021-12-2 16:28
算了,也不为那几块钱,本来就是看到了随手一做。

哈哈哈  真的十分感谢,昨天一下午都没搞出来。自学的,感觉真正动手起来很坎坷,感谢您!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 05:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表