私はPythonが初めてで、1つの小さな課題に取り組んでいます。dict.get()
Pythonでメソッドに変数を渡すときに問題が発生しています。
私が使用しているコードサンプルは次のとおりです。
inputFile = open("Result_table_file.txt")
outputFile = open("Result.txt","w")
file = open("matadata.txt")
from collections import defaultdict
d = defaultdict(dict)
for line in file:
name,values = line.split(':',1)
d[name] = values
for record in inputFile:
recordSplit = record.split(",")
filename = recordSplit[3]
metadataValue = d.get(filename)
print "FileName :" + filename
print metadataValue
print "Record : " + record
出力は次のとおりです。
FileName : Image01.tif
Metadata : None
Record : 100,134423.0,13911111,Image01
このコードは正常に動作します。唯一の問題は、filename
変数をmetadataValue = d.get(filename)
メソッドに渡すと、結果が として返されることNone
です。
何が問題なのか、どうすれば解決できるのか、誰でも教えてもらえますか。
ファイルから値を取得する代わりにファイル名変数を手動で作成するときに、私が特定したことがもう 1 つあります。正常に動作しています。
例えば :
filename = "Image01" d.get(ファイル名)
ファイルの読み取り中に値を取得すると、正しい出力が得られますが、これは機能しません。
例えば
inputFile のレコード: recordSplit = record.split(",") filename = recordSplit[3] metadataValue = d.get(filename) print "FileName :" + filename print metadataValue print "Record : " + record
何か案が?