从文本文件向csv文件添加新行

时间:2017-04-14 20:12:46

标签: python csv text

我有一个.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)

2 个答案:

答案 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(' ')

你可以从那里继续。这个问题无关紧要。

编辑:在他编辑之前,这个答案很有意思。