csv.filesを読み込むためにcsvモジュールを使用したいのですが、指定されたコードで次のエラーが表示されます:ファイル内のCSVモジュールの読み込み(他のフォルダにあります)
########################### IMPORT MODULES ############################
import sys, time, glob, os, csv, student
######################### DEFINE PARAMETERS ###########################
timings_csv_file = './timings.csv'
inputs_csv_file = './inputs.csv'
testing_pair_csv_file = './testing_pair.csv'
############## LOAD TIMINGS INFORMATION AND TEST PAIR #################
csv_reader = csv.reader(open(timings_csv_file, 'rb'), delimiter=',')
timings = [int(element) for element in csv_reader.next()]
csv_reader = csv.reader(open(testing_pair_csv_file, 'rb'), delimiter=',')
testing_pair = [long(element) for element in csv_reader.next()]
csv_reader = csv.reader(open(inputs_csv_file, 'rb'), delimiter=',')
inputs = [long(element) for element in csv_reader.next()]
##################### PERFORM TIMING ATTACK ###########################
key = student.perform_timing_attack(inputs, timings, testing_pair)
######################## OUTPUT RESULTS ###############################
keyhex = ",".join(["%02X" % (key >> 64-(8*(i+1)) & 0x00000000000000FF) for i in range(64/8) ])
print keyhex
################### WRITE RESULTS TO A FILE ###########################
keyF = open("./key.txt", "w")
keyF.write(keyhex)
keyF.close()
私は今後のエラーメッセージが表示されます:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/Amine/anaconda/lib/python2.7/site-packages/spyder/utils/site/sitecustomize.py", line 866, in runfile
execfile(filename, namespace)
File "/Users/Amine/anaconda/lib/python2.7/site-packages/spyder/utils/site/sitecustomize.py", line 94, in execfile
builtins.execfile(filename, *where)
File "/Users/Amine/Downloads/SIKA_Aufgabe_2/ga24feb_timings/framework/main.py", line 13, in <module>
csv_reader = csv.reader(open(timings_csv_file, 'rb'), delimiter=',')
IOError: [Errno 2] No such file or directory: './timings.csv'
私は私が言ったので、Pythonはそれが実際に探しているか、実行されている現在のディレクトリ内のファイルを見つけることができないと思う:」./file.csv "私が知っている限り、現在のディレクトリを探しています。私が知っていることは、csv-filesの全パスを入力すればうまくいくが、ファイルパスから独立させたいので、コードはそれ自身のパスのデータで常に動作する必要がある。
どのようにしてcsv-filesをそのまま残して、 "./file.csv"を使用できるようにするには、Pythonのパスを変更する必要がありますか?例えば。 Pythonが "sys.path [0]"を使って実際に探しているパスを調べると、出力が得られる "私は本当に理解できません。"さらに、私は自分のPYTHONPATHを設定しようとしましたが、PYTHONPATHはモジュールのデータのインポートのみを必要とします(これは正しいのですか?)。
だから、 "./file.csv"が私のために働くようにPythonが探しているパスを設定するにはどうすればよいですか?
ありがとうございます!
スクリプトが実行されている場所から1つのディレクトリをステップアップしようとしていますか?その場合は 'import os'を実行し、次に' directory = os.path.dirname(__ file __) ''そして 'file_to_read = os.path.join(ディレクトリ、 '../ timings.csv')'を実行します。スクリプトの場所に依存しない、より一般的なソリューションについてはわかりません。 – roganjosh
'/ Users/Amine/anaconda/lib/python2.7/site-packages/spyder/utils/site /'で検索しているので、そのエラーが出ています。 – Prajwal
はい、あなたはそれをどのように知っていますか?私は以下の "os.chdir( '/ Users/Amine/Downloads/SIKA_Aufgabe_2/ga24feb_timings')を使って私の現在のpythonの作業ディレクトリを変更し、1つのディレクトリをステップアップすることができました。しかし、私はまだエラーメッセージが表示されます。 – SolingerMUC