【问题标题】:isolating a chunk of text from a text file in python 3.8从 python 3.8 中的文本文件中分离出一段文本
【发布时间】:2021-03-29 20:00:19
【问题描述】:

所以,我正在用 python 做一些事情,我需要从文本文件中提取大量文本。但我似乎无法找到一种方法来做到这一点。在某些情况下,要取出的东西的数量可能会改变,但我想我可以自己弄清楚。我现在需要从第 23 行到第 124 行,或者从字符 1216 到 7757 取出,我真的不知道如何使它可扩展,但我相信你们也可以提供帮助。我已经尝试使用 .readlines() 和 .readline() 方法,但它们没有给我想要的东西。 当然,如果您需要更多详细信息,请询问并提供。

【问题讨论】:

  • 您可以使用参数调用.read().readlines(),这将从文件中读取那么多字节/行。例如,如果您想忽略第 23 到 124 行,您可以将 .readlines(22) 放入一个变量中,将 .readlines(101) 放入 nowhere 只是为了通过空间,然后将文件的其余部分 .readlines() 从之前
  • 我认为你需要提供更多 - 你提到你已经尝试过 readlines() 等,但没有任何乐趣 - 所以也许可以更多地解释这个问题 - 并说明为什么你需要第 23-124 行或第 1216 行-7757,也许提供一个小例子,说明你可以拥有什么,你想得到什么,以及你为展示它而拼凑的代码。

标签: python python-3.x file-handling


【解决方案1】:

您可以使用 readlines() 函数获取所有行,然后仅获取列表的一部分
对于字符,只需使用 read() 然后删除所有 \n 并从字符编号 n 到 t 中选择。
下面的例子:

lst = [0,1,2,3,4,5]
print(lst[1:5]) #prints indexes 1 to 4 inclusive so [1,2,3,4], it prints a list
a="01234" 
print(a[3:5]) #same logic it will print third and fourth characters so "34", here it prints a string
print(a.replace('3','') # here all '3' will be replaced by nothing so they'l be deleted, use this to get rid of \n

【讨论】:

    【解决方案2】:

    我真的不知道你的问题是什么所以这里有一个解决方案:

     with open("yourfile.txt") as file:
        content = file.readlines()
    
        del content[2:4] # delete third and fourth line
    
        print(content)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      相关资源
      最近更新 更多