2014-02-20 4 views
1

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

import os 
REMOTE_FILE = open(os.path.join('/Users/me/Dropbox/otherfolder', 'text.txt'), "r") 
decrypted = subprocess.check_output(['openssl', 'aes-128-cbc', '-d', '-in', REMOTE_FILE, '-base64', '-pass', key]) 

Программа не терпит неудачу на этой линии сразу, но когда я пытаюсь ссылаться на этот файл я получаю:

TypeError: Can't convert '_io.TextIOWrapper' object to str implicitly

Что я Я делаю неправильно? Благодаря!

+0

Вы пробовали ''/ Пользователи/me/Dropbox/otherfolder /''? –

+0

Да. Тот же результат. – Alex

+1

Как вы получаете доступ к файлу? Вероятно, ваша проблема существует, а не в этой строке. –

ответ

2

Вместо этого используйте REMOTE_FILE = os.path.join('/Users/me/Dropbox/otherfolder', 'text.txt'), чтобы получить только путь к файлу в виде строки, а не файла.

1

Ваш REMOTE_FILE является файловым объектом, а не строкой. Учитывая ваш код, вы, вероятно, имел в виду сделать:

import os 
REMOTE_FILE = os.path.join('/Users/me/Dropbox/otherfolder', 'text.txt') 
decrypted = subprocess.check_output(['openssl', 'aes-128-cbc', '-d', '-in', REMOTE_FILE, '-base64', '-pass', key]) 

Ведение REMOTE_FILE в виде строки, а не объект.

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