我正在尝试创建一个程序,该程序向用户询问文件。然后,程序应打印文件的内容,然后计算行数。运行程序时出现的问题是出现以下错误:for count in range[1, f2_l + 1]:TypeError: can only concatenate str (not "int") to str
。计数不应该是整数而不是字符串吗?我想继续使用while f2_l != '':
。
f1 = input('Please enter filename you wish to open.: ')
f2 = open(f1, 'r')
f2_l = f2.readline()
for count in range[1, f2_l + 1]:
print(count,':')
while f2_l != '':
print(f2_l)
f2_l = f2.readline()
f2.close()
答案 0 :(得分:1)
f1 = input('Please enter filename you wish to open.: ')
f2 = open(f1, 'r')
f2_l = f2.readlines()
for i in range(1, len(f2_l)):
print(i, ':', f2_l[i - 1])
f2.close()
阅读文档,了解文件操作和循环信息。我是行列表中的索引。 readlines()
返回行列表,每行都是一个str
答案 1 :(得分:1)
我建议这样做:
filename = input('Please enter filename you wish to open.: ')
with open(filename) as f:
data = f.readlines()
for index, line in enumerate(data, 1):
print('{index}: {line}'.format(index=index, line=line))
最好执行以下操作:
使用with
语句打开文件,以确保您打开的文件将被关闭;
使用内置函数enumerate
而不是索引的单独for循环
不要使用+
来连接字符串,而应使用format
方法
答案 2 :(得分:0)
您可以使用Python内置的enunerate()
函数,如下所示,以在打印时自动对行进行计数:
filename = input('Please enter filename you wish to open: ')
with open(filename, 'r') as file:
count = 0 # In case file is empty.
for count, line in enumerate(file, 1):
print(line, end='')
print('line count:', count)
答案 3 :(得分:-1)
您可以将其用于while循环:
s1=pd.Index(df.ColB).indexer_between_time('09:00:00','17:00:00',include_start =False ,include_end =False)
s1=df.index.isin(s1)
df.loc[s1|df.ColC.isin(['Saturday','Sunday'])]