Python csv写入列表
我有一个代码,可以将一堆行写入csv文件。它写了我想要的,但是。。。它在每列中插入括号。。。 代码是:Python csv写入列表,python,list,csv,Python,List,Csv,我有一个代码,可以将一堆行写入csv文件。它写了我想要的,但是。。。它在每列中插入括号。。。 代码是: root_text_csv = "C:/Users/s/Desktop/text/knife"+numarul_folderelor+".csv" fisier_text_knife = csv.writer(open(root_text_csv,'wb')) row_test = [] for filenames in os.listdir(foldere_p
root_text_csv = "C:/Users/s/Desktop/text/knife"+numarul_folderelor+".csv"
fisier_text_knife = csv.writer(open(root_text_csv,'wb'))
row_test = []
for filenames in os.listdir(foldere_prrra):
knife = filenames.replace("<SP>", " ").replace(".sys", "")
test = ['cut '+knife+' off for fuged,', 'cut '+knife+' off,', 'cut '+knife+' fool alabala,', 'cut '+knife+' nieh,', 'prrra '+knife+' alabala,',
'cut '+knife+' fuged streaming,', 'cut '+knife+' alabala fuged,', 'cut '+knife+' off alabala,', 'prrra '+knife+' fool alabala,',
'cut '+knife+' off fuged,', 'prrra '+knife+' niether alabala,', 'cut off '+knife+' for fuged,' 'cut '+knife+' fuged fool alabala,',
'cut '+knife+' off niether,', 'where to cut '+knife+',', ''+knife+' fool alabala off,', 'steel '+knife+' off fuged,', 'cut '+knife+' fuged niether,',
''+knife+' fool alabala off,', 'fuged streaming '+knife+',', 'cut '+knife+' niether,', 'cut '+knife+' fuged,', 'red '+knife+' off,', ''+knife+' off,',
'red '+knife+',', 'cut '+knife+',', ''+knife+' fuged,', 'fuged '+knife+',', ''+knife+' off,', 'off '+knife+',', ''+knife+',']
random.shuffle(test)
scris = [x for x in test if len(x) <= 30]
row_test.append(scris) #row_test.append(scris[0])
fisier_text_knife.writerow(row_test)
root\u text\u csv=“C:/Users/s/Desktop/text/knife”+numarul\u folderlor+“.csv”
fisier_text_knife=csv.writer(打开(root_text_csv,'wb'))
行_测试=[]
对于os.listdir(foldere_prrra)中的文件名:
刀=文件名。替换(“,”)。替换(“.sys”,”)
测试=[“切”+刀+“断开”,切“+刀+”断“,“切”+刀+”愚弄阿拉巴拉“,“切”+刀+”涅“,“prrra”+刀+”阿拉巴拉“,
“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“愚弄阿拉巴马”,
“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”+“切”,
“切”+“刀”+“切下尼瑟”、“切到哪里”+“刀”+“愚弄阿拉巴拉”、“钢”+“刀”+“切下尼瑟”、“切下”+“刀”+“切下尼瑟”,
“+刀+”愚弄阿拉巴拉“,“福格流”+刀+”,“切”+刀+“尼瑟”,“切”+刀+“福格”,“红”+刀+“关”,“+刀+”关,
“红色”+“刀+”,“切割”+“刀+”,“刀+“刀+”,“刀+”,“刀+”,“刀+”,“刀+”,“刀+”,“刀+”,“]
随机洗牌(测试)
scris=[x代表x,如果len(x)[发生这种情况的原因是因为scris
是一个列表
而不是:
row_test.append(scris[0:7])
fisier_text_knife.writerow(row_test)
而是这样做:
row_test += scris[0:7]
这也行得通(见下面的评论):
如果仍然没有意义,打开控制台,键入下面的示例内容。每次更改l
时,都将其打印出来
下面的示例应该向您说明这一点的原因:
l = [1,2,3] # l = [1,2,3]
l.extend([4,5]) #now l = [1,2,3,4,5]
l.append([6,7]) #now l = [1,2,3,4,5,[6,7]]
l.extend('hi there') #raises an exception
当您调用some\u list.append(some\u item)
时,它将some\u item
放在some\u list
中。因此,如果some\u item
也是一个列表,那么您将在列表中得到一个列表
当您调用some\u list.extend(some\u item)
时,它将some\u item
连接到some\u list
的末尾。因此,如果some\u item
不是列表,则这将出错
编辑我想我现在知道你想要什么了
因此,给定一个类似于[[1'、'2'、'3']、[4'、'5'、'6']、[7'、'8'、'9']
的列表,您希望csv看起来像:123456789
,对吗
而不是:
row_test.append(scris[0:7])
fisier_text_knife.writerow(row_test)
试试这个:
csv_friendly = [''.join(l) for l in row_test]
fisier_text_knife.writerow(csv_friendly)
将写入文件的字符串与打印时相同(行测试)——
作为列表的列表
您可以使用join为每行创建一个大字符串,例如:
row_test+= ','.join(scris) + '\n'
.extend()
比用切片的+=
要好。row\u test+=scris[0:7]
而不是for循环之前的row\u test=[]
?我做不到这一点,row\u test=[]
是用来写冒号的。确切地说,这是一个列表列表列表……如果没有那该死的括号,我怎么写列表呢?