2013-09-24 4 views
0

Я использую Automator на OSX [в соответствии с предыдущими вопросами] и мой os.path.split не работает по какой-то причине, даже если это тот же самый код, который прекрасно работает в CodeRunner и терминал ...Аналоговые операции для достижения os.path.split в Python?

Есть любой другой способ достижения этой функции:

import os 
input = '/Users/Opus_Magnum/desktop/list.txt' 
output = 'test_output.txt' 

dir,file = os.path.split(input) 
temp_out= os.path.join(dir,output) 
out_file=open(temp_out,'w') 

print dir 
print file 
print temp_out 

>> /Users/Opus_Magnum/desktop 
>> list.txt 
>> /Users/Opus_Magnum/desktop/test_output.txt 

Я в основном пытаюсь создать новый файл в том же каталоге, что и файл ввод

Я предпочел бы знаю, что могло бы заставить мою функцию os.path.split работать, но если что-то подобное доступно, я думаю, это тоже может сработать.

+1

, как вы знаете, он не работает? что это печатает вместо этого? есть ли ошибка? (define __not working__) –

+0

все работает отлично, пока я не доберусь до строки dir, file = os.path.split (input). , , я проверил, чтобы строка ввода была правильной, и все http://stackoverflow.com/questions/18970231/new-file-in-same-directory-as-input-file-python –

+1

снова вы только говорите, что есть проблема, а не проблема ... отправьте трассировку или сообщите нам, что происходит, чего вы не ожидаете (т. е. файл создается в directoy X, когда я ожидаю каталог Y) –

ответ

2

Вы можете использовать os.path.dirname(), чтобы получить каталог входного файла.

input = '/Users/Opus_Magnum/Desktop/list.txt' 
input_dir = os.path.dirname(input) 
output = 'test_output.txt' 
temp_out = os.path.join(input_dir, output) 
0
dir = os.path.dirname(input) 
file = os.path.basename(input) 

Аналог

dir,file = os.path.split(input) 
Смежные вопросы