मैं एक फाइल करने के लिए एक रास्ता है कहो , फ़ाइल को इंगित करता है। मैं इस के साथ खत्म करना चाहते हैं:os.chdir का उपयोग किए बिना अजगर में एक रिश्तेदार सिमलिंक बनाना()
/path/to/some/directory/symlink -> file.ext
मैं निर्देशिका में इस os.chdir काफी आसानी से उपयोग कर() सीडी के लिए कर सकते हैं और सिमलिंक पैदा करते हैं। लेकिन os.chdir() थ्रेड सुरक्षित नहीं है, इसलिए मैं इसका उपयोग कर से बचना चाहता हूं। यह मानते हुए कि प्रक्रिया की वर्तमान कार्यशील निर्देशिका फ़ाइल (os.getcwd()! = '/ Path/to/some/directory') के साथ निर्देशिका नहीं है, ऐसा करने का सबसे अच्छा तरीका क्या है?
मुझे लगता है मैं जो कुछ भी निर्देशिका में एक पर्दाफाश लिंक मैं तैयार हूं बना सकते हैं, तो फ़ाइल के साथ निर्देशिका में ले जाएं :
import os, shutil
os.symlink('file.ext', 'symlink')
shutil.move('symlink', '/path/to/some/directory/.')
वहाँ यह करने के लिए एक बेहतर तरीका है?
ध्यान दें, मैं नहीं चाहता कि अंत करने के लिए इस के साथ हैं:
/path/to/some/directory/symlink -> /path/to/some/directory/file.ext
यह बहुत ही मामूली लगता है: 'os.symlink ('/tar/get/of/link ','/var/tmp/lnk ') '' var/tmp/lnk'' बनायेगा चाहे आप अभी कहां हों , और इस पर ध्यान दिए बिना कि '/ tar/get/of' मौजूद है, आदि। यदि आप लक्ष्य चाहते हैं कि लक्ष्य'/'से शुरू न हो तो बस 'os.symlink (' target ','/var/tmp/lnk ')' । – torek