【问题标题】:Can i format txt files from within python我可以从python中格式化txt文件吗
【发布时间】:2015-09-14 21:34:11
【问题描述】:

现在很高兴不要误会我的意思,但我只是好奇我是否可以获取一个文本文件,然后找出该文本文件中已写入的行数,从而使用该数字打印选择性数据从每隔几行。我也可以使用 python 在文本文件中查找均匀分开的特定单词,例如在文本文件中,如果所有内容都是这样编写的

姓名:>本

得分:> 2

姓名:>伊森

得分:> 8

姓名:>詹姆斯

得分:> 0

我是否可以搜索文本文件中的字符串“名称:>”(然后将其前面的任何内容保存到变量中)或查看它们的间距是否相等?将一个人的具体分数与他们的名字一起保存到一个变量中(因为前面的所有内容都是等距的),根本不需要打开 txt 文件。

如果所有这些听起来完全不可能,或者如果你们中的任何人对我在说什么有任何模糊的想法(在这种情况下,我很敬畏你从这个措辞糟糕的例子中理解的能力),请给我任何想法或有关如何格式化文本文件以创建变量的想法。

如果以上所有内容看起来都太复杂,请告诉我是否可以分析文本文件中已写入多少行,从那里我对如何创建我的程序有一个模糊的想法。

【问题讨论】:

    标签: python text output


    【解决方案1】:

    您可以使用正则表达式 (RE) 将文本文件作为字符串进行搜索,然后找出要在文本文件中更改的现有值的位置并写入。

    https://docs.python.org/2/library/re.html

    【讨论】:

    • 感谢您的回复,是否可以不更改现有值,而是将值保存到python中的变量中:)
    • 实际上更好的是使用 rfind 提供搜索字符串的位置,然后您可以在之后切出这么多字符,去除空格并将其分配给变量。 name_location = TextFileString.rfind('name:>') name = TextFileString[name_location:10(不管多少)].rstrip
    【解决方案2】:

    按照你的要求,我个人会使用内置的re模块,如下:

    import re
    with open("foo.txt", "r") as foo:
        contents = foo.read()
    
    results = re.search("foo-bar", contents).group()
    print(results)
    

    这应该可以满足您的需求。

    【讨论】:

      猜你喜欢
      • 2020-01-20
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 2015-02-11
      • 2021-05-18
      • 1970-01-01
      • 2020-09-03
      • 2012-04-20
      相关资源
      最近更新 更多