, поэтому я хочу использовать модуль csv для чтения в некоторых файлах csv.files, но я получаю следующие ошибки с данным кодом:Чтение модулей 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-файлам, он будет работать, но я хочу сделать его независимым от пути к файлу, поэтому код должен иметь возможность работать всегда с данными по своему пути ,
Итак, как мне изменить путь к Python, чтобы оставить csv-файлы там, где они есть, и по-прежнему использовать «./file.csv». Например. когда я проверяю, какой путь на самом деле ищет Python, используя «sys.path [0]« Я получаю вывод «'», который я действительно не понимаю, потому что черт есть «путь»? Более того, я пытался установить PYTHONPATH, но я думаю, что PYTHONPATH включает только импорт данных для модулей (это правильно?).
Итак, что мне нужно сделать, чтобы установить путь, который Python ищет, так что «./file.csv» работает для меня.
Спасибо!
Вы пытаетесь активировать один каталог, из которого выполняется скрипт? В этом случае вы можете «импортировать os», затем «directory = os.path.dirname (__ file __)», затем «file_to_read = os.path.join (каталог,« ../ timings.csv »)». Я не уверен в более общем решении, которое не зависит от местоположения сценария. – roganjosh
ищет в '/ Пользователи/Amine/anaconda/lib/python2.7/site-packages/spyder/utils/site /', и именно поэтому вы получаете эту ошибку. – Prajwal
Да, откуда вы это знаете. Я изменил текущий рабочий каталог python со следующим «os.chdir («/Users/Amine/Downloads/SIKA_Aufgabe_2/ga24feb_timings »), с помощью которого я смог активировать один каталог. Но я все еще получаю сообщение об ошибке. – SolingerMUC