使用python将文本文件转换为csv

使用python将文本文件转换为csv,python,csv,Python,Csv,我有这样一个文本文件: Name: John Sanj Age: 23 Gender: Male Name,Age,Gender John Sanj,23,Male Name,Age,Gender J,o,h,n, ,S,a,n,j 2,3 M,a,l,e 我想将其转换为csv格式,如下所示: Name: John Sanj Age: 23 Gender: Male Name,Age,Gender John Sanj,23,Male Name,Age,Gender J,o,h,

我有这样一个文本文件:

Name: John Sanj
Age: 23
Gender: Male
Name,Age,Gender
John Sanj,23,Male
Name,Age,Gender

J,o,h,n, ,S,a,n,j

2,3

M,a,l,e
我想将其转换为csv格式,如下所示:

Name: John Sanj
Age: 23
Gender: Male
Name,Age,Gender
John Sanj,23,Male
Name,Age,Gender

J,o,h,n, ,S,a,n,j

2,3

M,a,l,e
这是我的密码:

import csv
import os
filepath=os.path.normpath('C:\\Users\\Desktop\\new\\ac.txt')
with open(filepath, 'r') as f:
    with open('log.csv', 'w') as out_file:
        writer = csv.writer(out_file)
        writer.writerow(('Name', 'Age','Gender'))
        for line in f:
            x=line.split(':')
            x[-1]=x[-1].strip()
            b=x[1]
            writer.writerow(b)
但我得到的输出是这样的:

Name: John Sanj
Age: 23
Gender: Male
Name,Age,Gender
John Sanj,23,Male
Name,Age,Gender

J,o,h,n, ,S,a,n,j

2,3

M,a,l,e

您正在将字符串从每一行传递到
writerow
(而不是所有的行),如果字符串是可写的,则会被拆分为它们的组成字符

你应该一次阅读所有的行,去掉新行字符,
上拆分:'
(注意尾随空格),然后换位

在这里:


谢谢,但我会读取很多文本文件并将其转换为单个csv文件。我只想显示一次密钥(姓名、年龄、性别)。然后您可以写入一次头文件(即第一行),并且始终从其他文件中丢弃头文件,因为头文件是相同的。如何丢弃头文件?