私はこのコーディングでは全く新しいですが、動作しなくてもモチベーションがたくさんあります。辞書のpythonとcsvファイル
私はCSVファイルの辞書で作業しようとしています。私は新しいファイルを開いて編集することになるが、csvファイルから読み込もうとすると何かが失われていると思う。 39-41行でエラーが発生している可能性があります。私はおそらく何か間違っていますが、それは何ですか? コードは次のとおりです。
import csv
import os
import os.path
phonebook = {}
def print_menu():
print('1. Print phone book')
print('2. add phone book')
print('3. look for number using first name only')
print('4. look by last name')
print('5. exit')
print()
menu_selection = 0
while menu_selection != 5:
if os.path.isfile('my_phonebook.csv') == True:
csv_file = open('my_phonebook.csv', 'a', newline = '')
writer = csv.writer(csv_file)
else:
csv_file = open('my_phonebook.csv', 'w', newline = '')
writer = csv.writer(csv_file)
headers = ['first_name','last_name','phone_number']
writer.writerow(headers)
print_menu()
menu_selection = int(input('type menu selection number'))
if menu_selection == 2: #add list in phone book
first_name = input("enter first name: ")
last_name = input("enter last name: ")
phone_number = input("enter phone number: ")
writer.writerow([first_name,last_name,phone_number])
csv_file.close()
elif menu_selection == 1: #print phone book
print("phone book:")
listGen = csv.reader(csv_file, delimiter=' ', quotechar='|') #error starts here and in the next two rows...
for row in csv_file:
print(row)
elif menu_selection == 3: #look for number using first name only
print('look up number')
first_name = input('first name:')
if first_name in phonebook:
print('the number is', phonebook[phone_number])
else:
print('name not found')
elif menu_selection == 4: #print all details of last name entered
print('search by last name')
last_name = input('please enter last name: ')
for row in csv_file:
print(row)
あなたの質問を編集し、あなたが得るエラーを追加することはできますか? Pythonでは、これらのメッセージには多くの情報が含まれており、列車ではエラーの大部分を読むだけで簡単に修正できます。 –
pythonのドキュメントの例は次のとおりです:https://docs.python.org/2/library/csv.html#examples? –