这是我的代码
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+
模式下打开的(