open()不适用于隐藏文件python

时间:2013-07-04 01:50:04

标签: python

我想使用python在隐藏文件夹中创建和编写.txt文件。我正在使用此代码:

file_name="hi.txt"
temp_path = '~/.myfolder/docs/' + file_name
file = open(temp_path, 'w')
file.write('editing the file')
file.close()
print 'Execution completed.'

其中〜/ .myfolder / docs /是隐藏文件夹。我得到错误:

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    file = open(temp_path, 'w')
IOError: [Errno 2] No such file or directory: '~/.myfolder/docs/hi.txt'

当我将文件保存在某个非隐藏文件夹中时,相同的代码可以正常工作。

为什么open()不适用于隐藏文件夹的任何想法。

1 个答案:

答案 0 :(得分:17)

问题不在于它是隐藏的,而是Python无法解决您对表示主目录的~的使用问题。使用os.path.expanduser

>>> with open('~/.FDSA', 'w') as f:
...     f.write('hi')
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: [Errno 2] No such file or directory: '~/.FDSA'
>>> 
>>> import os
>>> with open(os.path.expanduser('~/.FDSA'), 'w') as f:
...     f.write('hi')
... 
>>>