Python 2.7 是否有方法返回并编辑用户输入的信息?
我有一个用Python2.7编写的简单代码,它会向用户询问某些信息,并将信息导出到.csv文件中。用户输入数据后,是否有办法返回并编辑按enter键后输入的内容?以下是我到目前为止的情况:Python 2.7 是否有方法返回并编辑用户输入的信息?,python-2.7,Python 2.7,我有一个用Python2.7编写的简单代码,它会向用户询问某些信息,并将信息导出到.csv文件中。用户输入数据后,是否有办法返回并编辑按enter键后输入的内容?以下是我到目前为止的情况: def writer(): import csv with open('Work_Order_Log.csv', 'a') as f: w=csv. writer(f, quoting=csv.QUOTE_ALL) while (1): Correct=True
def writer():
import csv
with open('Work_Order_Log.csv', 'a') as f:
w=csv. writer(f, quoting=csv.QUOTE_ALL)
while (1):
Correct=True
Employee=True
WorkOrder=True
Item=True
Qty=True
Process=True
Date=True
Time=True
while Correct:
Correct=False
Employee=False
WorkOrder=False
Item=False
Qty=False
Process=False
Date=False
Time=False
Employee=raw_input("1. Enter Your Name:")
WorkOrder=raw_input("2. Enter The Work Order Number:")
PartNumber=raw_input("3. Enter The Item Number:")
Qty=raw_input("4. Enter Quantity:")
Process=raw_input("5. Enter Process:")
Date=raw_input("6. Enter Date(mm/dd):")
Time=raw_input("7. Total Time(hh:mm):")
needToCorrect=raw_input("Is the last Entry Correct? (If so, type 'y') If not enter the Number of the Field that is incorrect:")
if needToCorrect=="1":
Employee=True
elif needToCorrect=="2":
WorkOrder=True
elif needToCorrect=="3":
Item=True
elif needToCorrect=="4":
Qty=True
elif needToCorrect=="5":
Process=True
elif needToCorrect=="6":
Date=True
elif needToCorrect=="7":
Time=True
w.writerow([Employee,WorkOrder,Item,Process,Qty,Date,Time,Correct])
writer()
在测试代码之后,我发现当我输入错误字段的编号进行更正时,它会在.csv文件中显示它不正确,但仍然会让我通过整个循环来修复错误。这是为什么?您可以将所有输入放入while块:
while (1):
Correct = True
while Correct:
Correct = False
Employee=raw_input("Enter Your Name:")
...
needToCorrect=raw_input("Is the last Entry Correct?(y/n):")
if needToCorrect == "n":
Correct = True
w.writerow([Employee,WorkOrder,PartNumber,Process,Qty,Date,Time,Correct])
然后,如果用户注意到某些内容不正确,则“n”将提示用户返回并重新键入字段。如果您只想更正某些字段,则可以使用类似的、更复杂的方法。两个问题:是否有方法更改.csv文件中的数据,以及如何进行更改以更正某些字段?1。由于在用户认为正确之前,数据不会写入csv,因此您不必担心去修改.csv文件中的数据。您可以使用类似于
Employee=raw\u input(“1.Name:”)
,从而为每个项目分配一个数字。然后,当您询问所有内容是否正确时,您可以让用户输入需要更改的项目编号,然后将一些变量(如correct1
)设置为true。while
块将在更正时转到:如果更正1:Employee=raw。。。如果更正2:WorkOrder=raw\uu…
,依此类推。您还需要首先将每个correct(n)
boolean设置为true,然后将它们设置为false。如果希望用户更正多行,则在correct:correct(n)=false中执行If n。错误:If needToCorrect=“n”:
您使用赋值而不是相等。如果需要更正==“n”,则应为:
@roippi谢谢!每次都会发生…:)除了已被接受的答案所说的之外,我强烈建议您将数据整理好,然后打开并写出文件,而不是在整个过程中保持打开文件句柄。