Как учесть изменения в имени пользователя - PullRequest
0 голосов
/ 24 февраля 2019

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

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

Когда я хочу получить доступ к исходному текстовому файлу, заполненному мусором, на моем компьютере, я просто пишу:

f = open("/Users/Jon/Desktop/namelisttext.txt", "r+")

Но когда я экспортирую эту программу в .exe и отправлю ее коллеге, это, конечно, не сработает, потому что тот, кто ее использует, предположительно, не будет иметь имени пользователя «Джон».Кажется, что это будет распространенная проблема, поэтому я предполагаю, что есть какое-то простое решение, которое я не смог найти.Есть ли способ получить доступ к рабочему столу «текущего пользователя» или найти файл с определенным именем без указания полного пути к его местонахождению?

После некоторых исследований Environ кажется, что это может быть хорошим решением, предназначенным для ПК.Рабочие компьютеры - это ПК, но я пишу код на Mac, так что я предполагаю, что это означает, что я не смогу протестировать его на своей системе.

Любая помощь или альтернативные способы обойти проблему приветствуются!

1 Ответ

0 голосов
/ 24 февраля 2019

Используйте ~ для представления домашнего каталога пользователя, а затем вы можете использовать os.path.expanduser, чтобы развернуть его до полного пути для текущего пользователя.

Если вы вошли в системув качестве Jon и ваш домашний каталог будет /Users/Jon, тогда

import os

print(os.path.expanduser("~/Desktop/namelisttext.txt"))

напечатает:

/Users/Jon/Desktop/namelisttext.txt

Самое замечательное в os.path.expanduser заключается в том, что он не относится только к одномуОПЕРАЦИОННЫЕ СИСТЕМЫ.Он будет работать правильно на любой ОС, поддерживаемой Python, включая Windows, где ~ обычно не используется в противном случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...