我有一个.csv格式的数据集。数据集有3列和3500行,如下所示:
a | b | c |
-----------------------------------------
1 0 | .. | ** |
2 1 | .. | ** |
3 4 | .. | ** |
4 3 | .. | ** |
5 1 | .. | ** |
6 2 | .. | ** |
3000 . | .. | ** |
3499 . | .. | ** |
3500 . | .. | ** |
我的 m 文件夹包含 n 文本文件。这些文件夹中的每个文件名都有特定的表达式这些表达式类似于_AB / _CD / _EF / etc。
我想在.csv文件中添加新行: 对于第一列(a),我想添加一个数字取决于文件名中的表达式(_AB,_CD等)。
例如,如果文本文件的文件名包含 _AB ,则将数字0添加到列(a),如果它包含_CD,则添加1等。< / p>
对于(b)列,我想添加该文本文件的内容。
例如,如果我的文件夹包含这些文本文件:
Filename | Content
-----------------------------------------
Text_File_1_AB.txt | 100 200 140 240 120 160
Text_File_2_AB.txt | 170 180 190 100 110 120
Text_File_3_AB.txt | 130 140 150 160 150 160
.csv文件将如下:
a | b | c |
-----------------------------------------
1 0 | | |
2 1 | | |
3 4 | | |
4 3 | | |
5 1 | | |
6 2 | | |
3000 . | | |
3499 . | | |
3500 . | | |
3501 0 | 100 200 140 240 120 160 | |
3502 0 | 170 180 190 100 110 120 | |
3503 0 | 130 140 150 160 150 160 | |
此代码有效但我在添加的每个新行中都有相同的行(某个文本文件内容)。怎么了?
import csv
import os
for i in range (1,517):
x = [f for f in os.listdir('/Folder_name/')]
with open('/Folder_name/'+f, 'r') as content_file:
content = content_file.read()
list1=[0,content,'Something']
with open("file_name.csv", "a") as fp:
wr = csv.writer(fp, dialect='excel')
wr.writerow(list1)
答案 0 :(得分:0)
这完美无缺。 (对于那些需要它的人)
import csv
import os
for file in os.listdir('/Folder_name/'):
with open('/Folder_name/'+file, 'r') as content_file:
content = content_file.read()
list1=[0,content,'Something']
with open("file_name.csv", "a") as fp:
wr = csv.writer(fp, dialect='excel')
wr.writerow(list1)
答案 1 :(得分:-1)
您可以尝试以下方法;
csv = open("mycsvfile.csv","r")
从那里你可以使用;
csv.rstrip('-----------------------------------------')
csv.rstrip('|')
parts = csv.split(' ')
你可以从那里继续。这个问题无关紧要。
编辑:在他编辑之前,这个答案很有意思。