我希望以下代码读取此现有文本文件。
["Jenny", "Carlos", "Matty", "Anna"]
我如何写一些好的东西来获得这个输出。
["0 Jenny", "1 Carlos", "2 Matty", "3 Anna"]
这就是我到目前为止......
champions = []
n = 0
winners = open("victory.txt","r")
while True:
champions[n] = winners.readline()
n = n + 1
print(champions)
答案 0 :(得分:0)
champions = [champion.strip() for champion in open("victory.txt")]
答案 1 :(得分:0)
这可能是解决问题的一种方法:
i = 0
with (open('myFile.txt', 'r')) as data:
for line in data:
print str(i) + ' ' + line.rstrip()
i += 1
说明:
i = 0
初始化rowcount的计数器
with (open('myFile.txt', 'r')) as data:
以读取模式打开我们的文件,将每个文件放入一个名为“data”的数组中。
for line in data:
print str(i) + ' ' + line.rstrip()
i += 1
现在你遍历数组的每个元素,它的值存储在行中。打印行调用我们的countervariable,添加一个空格,从文件中放入行。 .rstrip()会像换行一样削减一些垃圾。
注意:这个是基于我的opion建立你的文件的样子。您应该“准确地”发布您的文件包含的内容。
坦克到@Guy他的提议使代码更简单易懂:
with (open('test', 'r')) as data:
for counter,val in enumerate(data):
print (str(counter) + ' ' + val.rstrip())
答案 2 :(得分:0)
只需打印行号:
with open('victory.txt') as f_input:
for index, row in enumerate(f_input):
print('{} {}'.format(index, row), end='')
如果要对现有文件进行更改,则需要分两个阶段进行,即读入,关闭文件,写出更新的值,例如:
with open('victory.txt') as f_input:
data = f_input.read().splitlines()
with open('victory.txt', 'w') as f_output:
for index, row in enumerate(data):
f_output.write('{} {}\n'.format(index, row))
假设您的输入文件是:
Jenny
Carlos
Matty
Anna
您将获得更新的输出文件:
0 Jenny
1 Carlos
2 Matty
3 Anna
enumerate()
用于为每行提供一个计数器。如果您希望从1
启动计数器,则可以添加start=1
。
end=''
,因为从文件读入的每一行都已包含尾随换行符。使用print()
也会添加换行符,因此您需要删除尾随换行符或在打印时停止Python添加换行符。