2

我正在尝试写入文件,列表中的第一行是 [0],第二行是 [1],等等。

这是一个简单的例子

crimefile = open('C:\states.csv', 'r')
b = crimefile.read()
l = b.splitlines()
print l[1]

states = open('c:\states.txt', 'w')
states.write('"abc"' + " " + '%s' '\n' %l[0+=])

states.close()

我对 Python 中的循环真的很陌生,基本上我不太确定循环以及如何在循环期间增加整数。

4

3 回答 3

6

使用enumerate()

for ind,line in enumerate(l):
    print ind,line

例子:

In [55]: lis=['a','b','c','d','e','f']
In [57]: for i,x in enumerate(lis):
    print i,x
   ....:     
   ....:     
0 a
1 b
2 c
3 d
4 e
5 f

或使用len()and xrange()

In [59]: for i in xrange(len(lis)):     #use range() in case of python 3.x
   ....:     print i,lis[i]
   ....:     
   ....:     
0 a
1 b
2 c
3 d
4 e
于 2012-09-10T18:26:28.713 回答
0

我不太确定我有没有收到你的问题,但无论如何我都会这样解决它:

f = open('C:\states.csv', 'r')
states = open('c:\states.txt', 'w')

for line in f:
    states.write('"abc"  %s\n' % line)

f.close()
states.close()
于 2012-09-10T18:34:49.980 回答
0

这是“pythonic”解决方案:

l = ['a', 'b', 'c', 'd']
with open('outfile', 'w') as f:
    f.write('\n'.join(l))

我不确定你的'abc'东西,但考虑到你需要,这将是一个解决方案:

'\n'.join(['"abc" %s' % e for e in l])
于 2012-09-10T18:55:55.560 回答