まだ未解決の部分
私のcsvファイル 'store.txt'に保存されているデータをリストフォームに変換しようとしています。私はより効率的かつ簡単に使用できます。次のとおりです。csvファイルのデータをリストに変換するには?
Leroy,55349234,[email protected]
Satish,231355,[email protected]
Krut,6969,[email protected]
私は(つまり、選択肢4にあります)上記のデータを取得するなど、リストにそれをしたい:
['Leroy','55349234','[email protected]']
['Satish','231355','[email protected]']
['Krut','6969','[email protected]']
私は基本的にどのようなリストにこれを変換しようとしています私はしたいときは、ユーザーが知りたいときです特定のメンバーについての詳細は、 'Satish'と言います。ファイル全体でSatishという名前が見つかるようにコードを作成し、その行全体をリストとして作成します。
['Satish' 、 '231355'、 '[email protected]']
これで、ユーザーは自分の名前、連絡先の詳細、またはメールIDを知りたい場合に入力できます。ユーザーは自分のメールのみを知りたいので、 doは という印刷要素[2]です。ジュラにより示唆されるように
は
を解決しました。今
、私の選択3、(ここでコードがある)に来る:私は置く場合)
1:私は、プログラムを実行すると選択肢3のために行くとき、私は2個のバグを取得
#a=(raw_input("Enter the staff's name: ")).capitalize()
a=(raw_input("Enter the staff's name: ")).capitalize()
with open('store.txt', 'r') as store:
reader = csv.reader(store)
for row in reader:
if row[0]==a:
print row
continue
else:
print "No staff with name %s is found in the database,please try again."%a
break
「リロイ」として名Iを得る:
Database
1)Register people
2)View People registered
3)Staff Details
Enter your choice over here: 3
Enter the staff's name: leroy
['Leroy', '55349234', '[email protected]']
No staff with name Leroy is found in the database,please try again
しかし、これが「リロイは」ファイルにすでに存在しているとして「store.txt」起こると想定されていない、なぜPythonはまた、else文と印刷を実行しません"Leroyという名前のスタッフはデータベースには見つかりませんでした。リースをもう一度試してください "。
2)今度は「Krut」で「Krutという名前のスタッフがデータベースに見つかりませんでした。もう一度お試しください」というメッセージが表示されます。私はファイル 'store.txt'のメンバーとしてKrutを持っていますが、 です。ここで
は、私のソースコードは次のとおりです。
import csv
print "Database"
print "1)Register people"
print "2)View People registered"
print "3)Staff Details"
choice=input("Enter your choice over here: ")
#This part takes the input from the user and then stores it in 'store.txt'
if choice==1:
a=input("Enter how many people to register: ")
for i in range(0,a) :
a=(raw_input("Enter the name: ")).capitalize()
b=input("Enter contact number: ")
c=raw_input("Enter the email ID: ")
d=raw_input("Enter your address: ")
with open ('store.txt','a') as store:
storeWriter=csv.writer(store)
storeWriter.writerow([a,b,c])
store.close()
#This prints all the data in the file 'store.txt
if choice==2:
with open('store.txt', 'r') as store:
reader = csv.reader(store)
print"- - - - - - - - - - - - - - - - - - - - - - - - - - - - "
for row in reader:
print 'Name:- '+row[0]
print 'Phone Number:- '+row[1]
print 'Email ID:- '+row[2]
print"- - - - - - - - - - - - - - - - - - - - - - - - - - - - "
if choice==3:
#a=(raw_input("Enter the staff's name: ")).capitalize()
a=(raw_input("Enter the staff's name: ")).capitalize()
with open('store.txt', 'r') as store:
reader = csv.reader(store)
for row in reader:
if row[0]==a:
print row
continue
else:
print "No staff with name %s is found in the database,please try again."%a
break
if choice==4:
print "List"
'''
What this program does basically is that it checks the entered name(a).But then if i type the name 'Leroy' it not only prints the
first line but also prints "No staff with name Leroy is found in the database,please try again." which is not required.And now if i
eneter a as Krut, it prints "No staff with name %s is found in the database,please try again." even though there is a name Krut in the
field.How do i get this done (i.e Enter Krut and then it should print row of 'Krut' that is "Krut,5537590,[email protected]"
Also next i want is that (in choice 4) if they eneter the name , it converts the file's(store.txt) data into a listSo basically what
i can do with that would be like print elemenet [0] for name, element[1] for contact number,element[2] for email ID etc.Like it should
make the first line of code that is "Leroy,55349234,[email protected]" into a list form ['Leroy','55349234','[email protected]']
so that when the user asks for the contact detail of the specific person i can just print list.(1) to get
their phone number.
'''
はこの答えを見てくださいhttp://stackoverflow.com/a/36807361/1437877とpythonの 'pandas'モジュール – Abbas
を使います。 – sb0709