Экранирование каталога пути косой черты в Mac OSX с помощью Python?

Это мой второй пост, я извиняюсь, если я что - то делаю неправильно-я постараюсь быть максимально кратким.

Я сделал некоторые поиски, и большинство побегов приходится иметь дело со встроенными строками JSON - моя проблема на самом деле с открытием самого файла.

в настоящее время я пытаюсь сделать свой код как можно более общим, поэтому я использую:

file = open(os.path.expanduser(r'~/Desktop/Austin/Tweets/10_7_2012_12/09-Tweets.txt'), 'r')

проблема в том, что когда интерпретатор видит этот код, он видит " / " в имени файла, и я думаю, что это пытаюсь зайти в другой каталог. Я подтвердил это, удалив " / " в имени файла и набрав:

file = open(os.path.expanduser(r'~/Desktop/Austin/Tweets/10_7_2012_1209-Tweets.txt'), 'r')

и он загружается нормально.

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

Итак, мой вопрос заключается в следующем: Есть ли способ загрузить файлы с прямыми косыми чертами в их файле имя?

Я видел много способов чтобы загрузить файлы с помощью кнопки поиска, но ни один из них, включая как бороться с косой чертой в имени... Я пробовал:

file = open(os.path.expanduser('~/Desktop/Austin/Tweets/10_7_2012_12/09-Tweets.txt'), 'r')

и

file = open(os.path.expanduser('~/Desktop/Austin/Tweets/10_7_2012_12//09-Tweets.txt'), 'r')

все безрезультатно.

объяснение того, как Python обрабатывает косые черты, будет приветствоваться, если кто-то хочет научить наивного студента.

Я использую Mac OSX на Leopard. Я запускаю веб-искатель, который взаимодействует с API потоковой передачи Twitter; косые черты в именах являются результатом сохранения их с помощью"/", чтобы обозначить дату.

решение: Вы можете использовать косые черты в именах файлов на Mac OSX. С точки зрения файловой системы, / фактически является двоеточием, и он переводится в / in Finder.

объяснение Kindall ниже: Это необходимо для слоя углерода, который использует стандартные разделители файлов Mac, двоеточия. Черты традиционно разрешают в Mac имена возвращаюсь в 1984. Пользователи Mac также ожидают увидеть двоеточия, а не косые черты, как разделители пути в GUI (или, по крайней мере, они сделали это в 2001, когда это поведение было установлено).

2 ответов


Я предполагаю, что вы используете Unix-подобную ОС, и я понимаю, что прямые косые черты не допускаются в именах файлов в таких системах. Что вы видите, если вы ls на ~/Desktop/Austin/Tweets/?


лично я бы предпочел запустить инструмент пакетного переименования этих файлов. Слэш в имени файла, как правило, плохая идея.

в противном случае, ответ:r'~/Desktop/Austin/Tweets/10_7_2012_12:09-Tweets.txt'. ср. специальные символы в имени файла OSX ? (Python os.переименовать)