Ampare1987 2022-03-01 20:14 采纳率: 55.6%
浏览 61
已结题

请问Python如何将一个TXT文件中的段落读入一个list?

包含中文的txt文件的结构是每一个段有数行,段与段之间用一个空行隔开。现在想把每一段填入一个list的项,比如我现在想把第一段写入p(1),第二段写入p(2)请问该如何写。
我的文件如下:

#世界 #亚洲
#中国 #陕西

#西安 #未央区
#大桥路

#小别墅

希望最终的p为:

['#世界 #亚洲 #中国 #陕西', '#西安 #未央区 #大桥路', '#小别墅']

前面可能我说的不太清楚,所以回答没有达到效果,这里我重新修改了一下问题。大家帮我看看,如何修改,谢谢大家了!

  • 写回答

1条回答 默认 最新

  • Julian_0115 2022-03-02 20:49
    关注
    
    all_line = []
    # 将file.txt改成你读取的文件
    with open('filename.txt', mode='r', encoding='utf-8') as fp:
        all_line = fp.readlines()
    print("all_line:", all_line)
    cnt = 0
    # bank为空格所在地编号
    bank = []
    for i, line in enumerate(all_line):
        if all_line[i] == '\n':
            bank.append(i)
            cnt += 1
    print("行数:", len(all_line), "段数:", cnt)
    print("空格所在地编号:", bank)
    # 形成新的list dp,一段为一个元素,但每个元素中依然有若干元素
    dp = []
    # 0:bank[0] bank[0]+1:bank[1] bank[1]+1:bank[2]... bank[cnt-1]+1:bank[cnt-1] #cnt=28
    dp.append(all_line[0:bank[0]])
    # 因为前面已经有了第一段,这里只需要剩下的cnt-1段即可
    for i in range(cnt-1):
        dp.append(all_line[bank[0+i]+1:bank[1+i]])
    print("dp:", dp)
    print("提取段数:", len(dp))
    # 形成结果的list result一段为一个元素.
    result = []
    for i in range(cnt):
        result.append(''.join(dp[i]))
    print("result:", result)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    1人已打赏

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月2日
  • 已采纳回答 3月2日
  • 修改了问题 3月2日
  • 创建了问题 3月1日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来