【问题标题】:Delete multiple Column(headers) in csv in python在python中删除csv中的多个列(标题)
【发布时间】:2021-03-17 17:56:42
【问题描述】:

这是我的代码

    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()

谁能告诉我如何删除重复的标题 当我运行该程序超过 2 次时,它开始复制标题,我不想一次又一次地复制标题请告诉我如何删除该标题(列)

stu csv 什么时候 我运行这个程序 2 次​​p>

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

【问题讨论】:

  • 一开始就不要制造问题。在决定写入标头之前测试文件是否存在并具有标头。

标签: python-3.x pandas algorithm dataframe csv


【解决方案1】:

这是一种解决方法。

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+模式打开的)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-06
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    相关资源
    最近更新 更多