随机模块中有一个shuffle函数。此外,你可以在你readlines()
为了有一个列表:
>>> ip=open('random.csv','r')
>>> data=ip.readlines()
>>> data
['a 15\n', 'b 14\n', 'c 20\n', 'd 45\n']
>>> from random import shuffle
>>> shuffle(data)
>>> data
['c 20\n', 'd 45\n', 'a 15\n', 'b 14\n']
如果你有一个头,就分割数据,并且洗牌行:
:
>>> ip=open('random.csv','r')
>>> data=ip.readlines()
>>> header, rest=data[0], data[1:]
>>> header
'h1 h2\n'
>>> rest
['a 15\n', 'b 14\n', 'c 20\n', 'd 45\n']
>>> shuffle(rest)
>>> rest
['c 20\n', 'd 45\n', 'a 15\n', 'b 14\n']
>>> [header]+rest
['h1 h2\n', 'c 20\n', 'd 45\n', 'a 15\n', 'b 14\n']
with语句使用
>>> with open('random.csv','r') as ip:
... data=ip.readlines()
...
>>> header, rest=data[0], data[1:]
>>> shuffle(rest)
>>> with open('output.csv','w') as out:
... out.write(''.join([header]+rest))
...
>>>
~$ cat output.csv
h1 h2
d 45
b 14
a 15
c 20
想这一点,得到错误“无类型,对象不iterable'code-ip = open(sys.argv [1],'r')data = ip.readlines()ip.close()data1 = shuffle(data)op = open('random.csv','w +') )op.writelines(data1)op。关闭() –
@RoshVerma我发布之前运行的代码,所以我猜它是在你的数据导致问题的东西。试着打印'data'和'data1'并告诉我结果。 – armatita
是的,得到了错误,它在我的代码中。非常感谢你的帮助。它终于奏效了。 :) –