如何从文件python中打印多行

时间:2016-06-18 16:23:00

标签: python-3.x

我正在尝试从文本文件中打印几行到python,然后输出。我目前的代码是:

f = open("sample.txt", "r").readlines()[2 ,3]
print(f)

但是我收到的错误信息是:

TypeError:列表索引必须是整数,而不是元组

无论如何修复此文件或从文件中打印多行而不单独打印出来?

2 个答案:

答案 0 :(得分:0)

将整个行列表分配给变量,然后分别打印第2行和第3行。

public class JalaliDateConverter : IValueConverter
{
    public Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
       // Gregorian to Jalali conversion code

       return jalaliaDate;
    }

    public ConvertBack((object value, Type targetType, object parameter, CultureInfo culture)
    {
        // Jalali to Gregorian conversion code

        return gregorianDate;
    }
}

答案 1 :(得分:0)

您正在尝试将元组传递给[...]订阅操作; 2 ,3是两个元素的元组:

>>> 2 ,3
(2, 3)

你有几个选择:

  • 使用切片从所有行中获取子列表。来自第3行的[2:4]个切片包含第4行:

    f = open("sample.txt", "r").readlines()[2:4]
    
  • 逐行存储行并打印特定索引:

    f = open("sample.txt", "r").readlines()
    print f[2].rstrip()
    print f[3].rstrip()
    

    我使用str.rstrip()删除了在打印前仍然属于该行的换行符。

  • 使用itertools.islice()并将文件对象用作可迭代的;这是最有效的方法,因为除了打印工作之外,不需要将任何行存储在内存中:

    from itertools import islice
    
    with open("sample.txt", "r") as f:
        for line in islice(f, 2, 4):
            print line.rstrip()
    

    我还使用文件对象作为上下文管理器,以确保在with块完成后再次正确关闭。