Python读取文件并获取子串

时间:2016-04-20 04:41:29

标签: python string raspberry-pi

我读了一个包含以下内容的文件:

> hello world

使用以下代码阅读此文件,但我无法阅读其中的一部分

with open("/home/pi/example1.txt") as f1:
    test = f1.readlines(0)
    print (test)
    print (test[0:2])

预期产出:

Hello world
He

输出我得到的东西

['helloworld\r\n']
['helloworld\r\n']

从文件中获取子串的一部分的正确(和简单)方法是什么?

5 个答案:

答案 0 :(得分:2)

readlines()返回一个列表,正如您在输出中看到的那样,字符串实际上是单项列表的一部分:

>>> f = ['helloworld\r\n']
>>> f[0][0:2]
'he'

要修复原始代码,您需要在读取线调用之后移动0

test = f1.readlines()[0]

但是,当您使用with语句时,您的生活会更简单:

with open("/home/pi/example1.txt") as f1:
    for line in f1:
        print(line)
        print(line[0:2])

答案 1 :(得分:1)

只需改为:

with open("/home/pi/example1.txt") as f1:
    for test in f1:
        print(test)
        print(test[0:2])

其他方式readline返回一个列表然后只使用索引行readline()[0]

答案 2 :(得分:1)

这是您想要的正确代码。

with open("/home/pi/example1.txt") as f1:
    test = f1.readlines(0)
    print (test[0])
    print (test[0][0:2])

但您也可以使用以下方法。

with open("/home/pi/example1.txt") as f1:
    test = f1.readline()
    print (test)
    print (test[0:2])

答案 3 :(得分:1)

您可以使用 .strip()功能删除字符串中的所有空格和换行符

    with open('../../xx.txt','r') as fi:
        for line in fi:
           print(line.strip())
           print(line[0:2])

我没有在第二个print语句中使用 .strip()方法,因为我们只是获取字符串的初始部分。所以它不会是一个新的线条角色(让我们希望如此)。万一你想要也可以使用那条线

    print(line[0:2].strip())
如果你以后使用字符串进行任何比较,

strip()方法将非常有用。

答案 4 :(得分:1)

readlines返回一个列表

使用test [0]作为子串