【问题标题】:Python - Get specific characters from text file or from listPython - 从文本文件或列表中获取特定字符
【发布时间】:2017-12-22 11:29:28
【问题描述】:

我有一个包含这个的文本文件

开幕时间:8:00

当我写入文件时,我使用了这个

File.write("Curtain Open Time: " + Var_CurtainOpenTime, + "\n")

我使用“\n”进入下一行以写入更多数据。 “Var_CurtainOpenTime”是一个变量,在这种情况下它是“8:00”。我有一些代码可以读取如下所示的行:

FileRead = open('File.txt', 'r')

打印此内容将显示“窗帘打开时间:8:00”。

我希望能够获得“8:00”。我以前使用FileRead.split(" ") 分隔每个单词,但在 8:00 之后我得到["Curtain", "Open", "Time:", "8:00\n"]。所以我相信我需要以某种方式删除前 3 个索引,并以某种方式从最后一个索引中删除 '\n' 。我不知道我会如何处理这个问题。有什么帮助吗?

【问题讨论】:

    标签: python string list file text


    【解决方案1】:

    试试下面,我会评论解释

    with open('File.txt') as f:
        [line.replace('\n','').split()[3:][0] for line in f][0]
    

    或者只是:

    FileRead = open('File.txt', 'r')
    
    result = [line.replace('\n','').split()[3:][0] for line in FileRead][0]
    

    【讨论】:

    • 您将我的答案复制到split 部分中的缺失点;)我修复了我的。修好你的
    • @efirvida aaaaaaaah,你明白了,是的,我看到这是个好主意,但仍然不能正常工作,你也看看你的答案:),你太接近了
    【解决方案2】:

    你只需要将.split(" ")改为.split()然后得到最后一个列表项

    with open('file.txt') as f:
         print f.read().split()[-1]
    

    【讨论】:

    • 小心,操作要第三个元素!无论如何都是领先的加分项
    • 我已经尝试过这个并结合 FileRead = (FileRead[3::]) 删除“窗帘打开时间”。它删除了 '\n' 但一旦打印 ['8:00'] 括号和引号仍然保留。
    • 哈哈@DamianLattenero 也谢谢你,我只是将我的答案集中在删除\n 上,而忘记了第二部分。但我刚刚学到了一些新东西......没有必要.replace ('\n') 只使用不带参数的.split(),而不是.split(" ") 做到了,所以我更新了我的答案
    • 返回 0 而不是 8:00
    • @ThePGT 我再次更新代码,我忘记读取文件;)
    【解决方案3】:

    一旦您从拆分中获得列表,您可以通过执行 l=l[3:] 删除前 3 个术语(其中 l 是您的列表)。然后您可以通过执行 s = s[:-1] 删除 \n ,其中 s 是您想要的字符串。这是使用列表切片。如果您想进一步了解,可以查看文档。

    【讨论】:

    • 是的,我已经这样做了,但括号和撇号 ['8:00'] 仍然存在
    猜你喜欢
    • 2020-04-26
    • 2015-11-23
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-08
    • 1970-01-01
    • 2016-12-30
    相关资源
    最近更新 更多