删除python中csv中的多个列(标题)



这是我的代码

import csv
#import pandas as pd
f = open("stu.csv", "a+", newline="")
Smain = csv.writer(f)
Smain.writerow(["Name", "Father Name", "Class", "Admission Number"])
mainrec = []
increas = 1
class1 = open("class-1.csv", "a+", newline="")
stuclas1 = csv.writer(class1)
stuclas1.writerow(["Roll Number", "Name", "Admission Number"])
while True:
nam = input("Enter Student Name - ")
Clas = int(input("Enter Class - "))
Fname = input("Enter Father Name - ")
adm = 100 + increas
lst = [nam, Fname, Clas, adm]
mainrec.append(lst)
if Clas == 1:
stucls1list = []
a1 = 0
rollnum_cla1 = 0 + increas + a1
a1 = 0 + rollnum_cla1
lst1 = [rollnum_cla1, nam, adm]
stucls1list.append(lst1)
for i1 in stucls1list:
stuclas1.writerow(i1)
increas += 1
c = input("Input 'Y' If You Want To Record More, Otherwise Press 'N' - ")
if c == "N":
break
for i in mainrec:
Smain.writerow(i)
# load dataset
#df = pd.read_csv("stu.csv")
# select the rows
# if Name column
# has special characters
#print(df[df.Name.str.contains(r'[Name]')])
# drop the merged selected rows
f.close()
class1.close()

有人能告诉我如何删除重复的标题当我运行这个程序超过两次时,它启动了重复的标题,我不想一次又一次地重复标题,请告诉我如何删除该标题(列(

stu csv何时我运行这个程序两次

Name,Father Name,Class,Admission Number
xyz,xyz,1,101
qwe,qwe,1,102
N,N,1,103
Name,Father Name,Class,Admission Number # this i want to delete
test,test,1,101
you,you,1,102

这里有一种解决方法。

f = open("stu.csv", "a+", newline="")
f.seek(0)
if len(f.read()) == 0
Smain = csv.writer(f)
Smain.writerow(["Name", "Father Name", "Class", "Admission Number"])

这将检查文件中是否有内容。如果它有内容,那么您已经有了标题。如果没有内容,那么你就没有标题。这将决定是否需要将头写入文件。

以下是我尝试时的样本输出:

首次运行:

No header   #my print statement output

第一次运行后输出文件:#文件头写入文件

Name,Father Name,Class,Admission Number

第二次运行:

header found, skipped writing header again   #my print statement output

它没有再次将输出写入文件。

第二次运行时的输出文件:

Name,Father Name,Class,Admission Number

请注意,默认情况下,f.write会将指针移动到最后一行(因为文件是在a+模式下打开的(

最新更新