我正在尝试从文本文件中打印几行到python,然后输出。我目前的代码是:
f = open("sample.txt", "r").readlines()[2 ,3]
print(f)
但是我收到的错误信息是:
TypeError:列表索引必须是整数,而不是元组
无论如何修复此文件或从文件中打印多行而不单独打印出来?
答案 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
块完成后再次正确关闭。