2014-10-02 41 views
0

我想创建一个子目录文件,两者都将不存在,当程序第一次运行子目录一个新的文件。当我这样做:制作中使用python

newfile = open('abc.txt','w') 

它将创建的abc.txt得很好,但下面将导致一个错误,说文件或目录不存在

newfile = open('folder/abc.txt','w') 

我试着用os.makedirs到首先创建目录,但是失败以及引发相同的错误。什么是创建文件夹和文件的最佳方式?

感谢

+6

你是怎么使用'os.makedirs'的? – chepner 2014-10-02 18:19:24

回答

1
>>> import os 
>>> os.makedirs('folder') 
>>> newfile = open('folder' + os.sep + 'abc.txt', 'w') 
>>> newfile.close() 
>>> os.listdir('folder') 
['abc.txt'] 

这对我的作品

+0

不知道'os.sep',会开始使用这个。 – TehTris 2014-10-02 19:09:56

+0

年。 os.sep只是一个分隔符? 它现在适用于我。谢谢=) – Solutions 2014-10-02 20:39:10

+0

'print(os.sep)'这取决于您的操作系统。所以它在真实的操作系统上是'/'。 – jgritty 2014-10-02 22:26:48

0

几件事情要检查:

  1. os.makedirs只需路径,而不是文件。我假设你已经知道这一点,但你还没有向makedirs表示你的电话,所以我想我会提到它。

  2. 考虑将绝对路径,而不是相对路径传递给makedirs。或者,首先使用os.chdir更改为您知道您拥有写入权限的目录。

希望那些帮助!

+0

它是'makedirs',而不是'mkdirs'。只有一个目录是'mkdir' – jgritty 2014-10-02 18:44:43

+0

谢谢 - 修正了名字。 – 2014-10-02 19:26:45

+0

绝对路径是什么意思?根据我的理解,路径是硬编码的,所以如果我移动文件的整个目录,一切都会变得混乱? – Solutions 2014-10-02 20:40:44