2015-04-14 2 views
1

Я использую часть своего сценария для загрузки данных из зарегистрированных файлов .npz.Как определить, откуда скрипт загружает файлы?

Here is the code:

Tk().withdraw() # Here starts the first loading phase, where I pick the file I want from a window 
filename = askopenfilename() 
with load(filename) as data: 
    # file loading logic here 
    pass 

ext = '.npz' 
for i in range(1, NF): # Here starts the second part, which loads one by one from the folder where the script is. 
    filename = str(i) + ext 
    with load(filename) as data: 
     XYsliceTemp = data['XYslice'] 

Так что мой вопрос? Прямо сейчас, когда я нахожусь на втором этапе, он загружает один за другим файлы из папки, где находится скрипт. Я хотел бы закодировать его таким образом, чтобы я мог выбирать (с открытием окна или путем написания чего-то в коде с полным адресом), куда он будет загружать файлы (все файлы всегда находятся в одной папке)

Это фон: Я собираюсь хранить данные на жестком диске, на которых не работают, поэтому я не могу установить на него python и запустить его оттуда. Итак, я хотел бы рассказать моему сценарию на своем компьютере: пойдите, чтобы получить эти файлы на HDD в этом точном месте.

На самом деле первая фаза загружает файл 0, а затем второй загружается из 1 в N. Поэтому, если бы я мог сказать: где я решил загрузить 0, идите туда, чтобы найти N других, это было бы прекрасно.

ответ

1

Используйте os.path.split() и os.path.join() методы:

import os 

filename = askopenfilename() 
directory = os.path.split(filename)[0] 

ext = 'npz' 

for i in range(1, NF): 
    filename = os.path.join(directory, '%s.%s' % (i, ext)) 
    ... 
+0

Спасибо! Это кажется удобным и легким. Я попробую это как можно скорее. – Magea

Смежные вопросы