Как сбросить автоматический инкрементный счетчик после удаления строки из файла CSV в Python? - PullRequest
0 голосов
/ 25 марта 2019

Идея состоит в том, чтобы создать систему входа в систему, в которой клиент может удалить запись, а затем, в идеале, она также должна быть удалена из файла (csv). Я могу легко удалить строку, но не могу сбросить строку счетчик снова с самого начала.

def DeleterUser():
    import csv
    global Pswd,UserId
    UserId='Admin2'
    csvdate='NewDate'
    Pswd='somemewpswd'
with open(r'C:\Python27\Hospital_Management_System\Files\Patients_Credential.csv','r') as wr1:
    filewriter=csv.writer(wr1,delimiter=',',lineterminator='\n' )
    reader = csv.reader(wr1,delimiter = ",",lineterminator='\n' )
    #csvreader.next() 
    i=0
    data = list(reader)
    row_count = len(data)
    for (number, line) in enumerate(data):
        if UserId!=line[2]:
            #reader = csv.reader(wr1,delimiter = ",",lineterminator='\n' )   
            print('%d  %s' % (number , line))

Еще один, который я попробовал, для х в данных: если UserId! = x [2]: печать х
DeleterUser ()

def DeleterUser():
    import csv
    global Pswd,UserId
    UserId='Admin2' #If username is Admin2, It should get deleted
    csvdate='NewDate'
    Pswd='somemewpswd'
    with open(r'C:\Python27\Hospital_Management_System\Files\Patients_Credential.csv','r') as wr1:
    filewriter=csv.writer(wr1,delimiter=',',lineterminator='\n' )
    reader = csv.reader(wr1,delimiter = ",",lineterminator='\n' )
    #csvreader.next() 
    i=0
    data = list(reader)
    row_count = len(data)
    for x in data:
        if UserId!=x[2]:
        print x      

DeleterUser () # Для вызова функции

My actual csv looks like this:-
S.No    Date and Time   UserName    Password
1   24-03-2019 12:02    ADMIN   Admin12
2   24-03-2019 12:02    Tarun   Tarun123
3   24-03-2019 12:02    Admin2  Admin1
4   24-03-2019 12:02    Admin   Admin1
5   24-03-2019 11:59    User1   User11
6   24-03-2019 12:02    Admin21 Admin22
7   24-03-2019 12:02    Admin3  Admin33

когда я пытаюсь удалить строку, я получаю вывод, как показано ниже: -

S.No    Date and Time   UserName    Password
1   24-03-2019 12:02    ADMIN   Admin12
2   24-03-2019 12:02    Tarun   Tarun123
4   24-03-2019 12:02    Admin   Admin1
5   24-03-2019 11:59    User1   User11
6   24-03-2019 12:02    Admin21 Admin22
7   24-03-2019 12:02    Admin3  Admin33

Если я удаляю строку, где UserName = Admin2, то в идеале я хотел бы записать обратно в файл, как показано ниже: - Моя проблема в том, что я не могу сбросить счетчик, начиная с 1 и заканчивая на 6 как одну строку, которую я успешно удалил.

S.No    Date and Time   UserName    Password
1   24-03-2019 12:02    ADMIN   Admin12
2   24-03-2019 12:02    Tarun   Tarun123
3   24-03-2019 12:02    Admin   Admin1
4   24-03-2019 11:59    User1   User11
5   24-03-2019 12:02    Admin21 Admin22
6   24-03-2019 12:02    Admin3  Admin33
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...