كيف يمكنني استخدام '~' (tilde) في سياق المسارات؟
سؤال
أنا NOOB تطوير تطبيقات الويب. لدي وظيفة تفتح ملف وقراءته. لسوء الحظ ، تختلف هياكل الدليل بين خوادم الاختبار والإنتاج. قيل لي أن "استخدام مسار بالنسبة إلى ~". لم أتمكن من العثور على أي موارد على "~" ، رغم ذلك!
كيف يمكنني استخدام شخصية Tilde في سياق المسارات؟
تحرير: هذا في بيثون. لقد أصلحت المشكلة ، باستخدام os.path.expanduser ('~/path/in/home/arey').
المحلول
إنه الخاص بك $HOME
var في UNIX ، وهو عادة ما يكون /home/username
.
"منزلك" بمعنى منزل المستخدم الذي ينفذ أمر مثل cd ~/MyDocuments/
هو cd /home/user_executing_cd_commnd/MyDocuments
نصائح أخرى
ما لم تكن تكتب برنامج نصي shell أو تستخدم لغة أخرى تعرف أن تحل محل قيمة $HOME
إلى عن على ~
, ، Tildes في مسارات الملفات ليس لها معنى خاص وسيتم التعامل معها كأي حرف آخر غير خاص.
إذا كنت تكتب نص Shell ، فإن القذائف لا تفسر Tildes إلا إذا كانت تحدث كحرف أول في حجة. بعبارات أخرى، ~/file
سيصبح /path/to/users/home/directory/file
, ، لكن ./~/file
سيتم تفسيرها حرفيًا (أي ، ملف يسمى file
في دليل فرعي .
اتصل ~
").
يستخدم في عناوين URL ، وتفسير Tilde كاختزال للدليل الرئيسي للمستخدم (على سبيل المثال ، http://www.foo.org/~bob
) هي اتفاقية مستعارة من يونيكس. يعد التنفيذ خاصًا تمامًا بالخادم ، لذلك ستحتاج إلى التحقق من الوثائق لخادم الويب الخاص بك لمعرفة ما إذا كان له أي معنى خاص.
إذا كنت تستخدم Pathlib لأسماء الملفات ، فيمكنك استخدامها على كل من Windows و Linux (جئت إلى هنا للحصول على إجابة Windows):
python
from pathlib import Path
p = Path('~').expanduser()
print(p)