隨機模塊中有一個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
是的,得到了錯誤,它在我的代碼中。非常感謝你的幫助。它終於奏效了。 :) –