2017-03-08 29 views
1

2つのファイルまたは1つのファイルを呼び出すにはどうすればよいでしょうか(どちらが簡単かはわかりません)、2つの文字列を関連付けることで、ユーザーが正しいカウンタ文字列を入力したかどうか調べることができますそのうちの1つが出力されました。 ファイル1の行 'n'はファイル2の行nと同じになります。ファイル内にアイテムを関連付ける

N.B. 私は、(挑戦のために、私はPythonには全く新しい)システムを作成しています。これは、関連するユーザー名に対してパスワードが正しいかどうかをチェックして、辞書の代わりにファイルを使用できるかどうかを調べています。 ライン・バイ・ライン私は周りを見回したが、私はこれらの小さなファイルですと仮定すると、

+0

ファイルはちょうどデータの塊です。もしあなたがdictのようにアクセスしたいのであれば、あなたのプログラムにdict(あるいは同様のマッピング構造)として読み込まなければなりません。 – glibdud

+0

もっと正確になりますか?ファイル1の行 'n'をファイル2の行' n'に関連付けるには?または、一般的にファイルの辞書のデータ記憶域を探していますか?あなたはcsvファイル、またはその中に辞書を持ったPythonファイルを使うことができます。 – L3viathan

答えて

1

を自分の目的に合ったご質問を見つけることができなかった、リストにそれらの両方をお読みください。今、あなたは簡単にでき

l1, l2 = [], [] # these will store the lines 
for fname, l in [(fname1, l1), (fname2, l2)]: # read in one file at a time 
    f = open(fname, "r") # opens in read mode 
    for line in f: 
     # line = line.strip() if you want to remove head/trailing newlines, tabs, etc 
     l.append(line) 
    f.close() # good practice to close explicitly even though GC would get it later 

をリストにアクセスして対応を確認してください:

is_match = (l2[i] == l2[i]) 

これは、重要な場合は、辞書を構築するより効率的です。

P.S.パスワードシステムではパスワードをプレーンテキストで保存しないでください。一般的な方法は、安全に塩漬けされた+ハッシュされたパスワードを保存することです。これを試してみたいと思えば、それはあなたの部分をさらに読む必要があります。参照:https://nakedsecurity.sophos.com/2013/11/20/serious-security-how-to-store-your-users-passwords-safely/

関連する問題