#python #csv
Вопрос:
Следующий код предназначен для обеспечения того, чтобы сотрудник мог входить в систему и включать/выключать часы в указанные дни. Когда я пытаюсь установить время для сотрудника и ввести все часы, код сохраняет его в файл, однако не в тех конкретных столбцах, которые я хочу. Это позволит сохранить его, заменив всю строку и переписав ее с самого начала. Тем не менее, я хочу, чтобы он сохранялся с 7-й колонки и далее.
role = input("Choose role [E]mployee / [P]ayroll clerk [Default]:")
if role == "E" or role == "e":
logged_in = False
file = open("user_pass.csv", 'r')
user_pass_list = []
for row in file:
field = row.split(",")
user_name = field[0]
pass_word = field[1]
user_id = field[2]
user_pass_list.append([user_name, pass_word, user_id])
file.close()
while not logged_in:
print("Please enter your details to log in:n")
user_name1 = input("Please enter your username: ")
pass_word1 = input("Please enter your password: ")
for item_num in range(0, len(user_pass_list)):
if user_name1 == user_pass_list[item_num][0]:
if pass_word1 == user_pass_list[item_num][1]:
logged_in = True
user_name = user_pass_list[item_num][0]
pass_word = user_pass_list[item_num][1]
user_id = user_pass_list[item_num][2]
if not logged_in:
print("Incorrect. Please try again.n")
print("Hello", user_name)
clock = input("Clock [I]n / Clock [O]ut:")
if clock == "I" or clock == "i":
editfile = open("CafeTestData.csv", "r")
completion = "false"
newfile = editfile.readlines()
for line in newfile:
if line.split(",")[0] == user_id:
while completion == "false":
print(line)
details = line.split(",")
mon_time = input("Please enter the hours worked on Monday: ")
if mon_time == "":
mon_time = details[7]
tue_time = input("Please enter the hours worked on Tuesday: ")
if tue_time == "":
tue_time = details[8]
wed_time = input("Please enter the hours worked on Wednesday: ")
if wed_time == "":
wed_time = details[9]
thu_time = input("Please enter the hours worked on Thursday: ")
if thu_time == "":
thu_time = details[10]
fri_time = input("Please enter the hours worked on Friday: ")
if fri_time == "":
fri_time = details[11]
sat_time = input("Please enter the hours worked on Saturday: ")
if sat_time == "":
sat_time = details[12]
sun_time = input("Please enter the hours worked on Sunder: ")
if sun_time == "":
sun_time = details[13]
print(
mon_time " " tue_time " " wed_time " " thu_time " " fri_time " " sat_time " " sun_time)
confirmation = input("Are you sure this data is correct? [Y] or [No]: ")
if confirmation == "Y" or confirmation == "y":
newline = mon_time "," tue_time "," wed_time "," thu_time "," fri_time "," sat_time "," sun_time "n"
newfile.remove(line)
newfile.append(newline)
completion = True
editfile.close()
editfile = open("CafeTestData.csv", "w")
editfile.writelines(newfile)
editfile.close()
if confirmation == "N" or confirmation == "n":
completion = False
Ответ №1:
Я в основном работаю с библиотекой Панд, которую я определенно рекомендую вам, но вы, возможно, захотите попробовать a
вместо w
этого добавить специальный символ:
open("CafeTestData.csv", "a").write(text)