如何避免为每个用户创建文件夹的txt副本

时间:2016-04-30 22:53:55

标签: python-3.x

我正在尝试创建文件夹:

import os

mypath = (r'C:\my_folder')
if not os.path.isdir(mypath):
   os.makedirs(mypath)

我从Windows获得错误或者这样mypath = (r'C:\ProgramData\my_folder')  我收到了这个错误:

mkdir(name, mode)
PermissionError: [WinError 5] Access is denied: 'C:\\ProgramData\\my_folder'

因为脚本没有写入权限,现在可以使用上一篇文章的帮助

PermissionError: [WinError 5]

我必须使用这条规则:

https://blogs.msdn.microsoft.com/patricka/2010/03/18/where-should-i-store-my-data-and-configuration-files-if-i-target-multiple-os-versions/

这样:

import os

mypath = os.path.join(os.getenv('programdata'), 'my_folder)
if not os.path.isdir(mypath):
    os.makedirs(mypath)

我在这里找到了文件夹:

  

C:\ ProgramData \ my_folder

工作,但新问题,例如之前的情况:mypath = (r'D:\my_folder\)这样我有文件夹,当我第一次启动程序时,这会在内部创建textdoc.txt,工作完美,但如果我这样走mypath = os.path.join(os.getenv('programdata'), 'my_folder)如果第一个我有一个textdoc.txt,现在我有两个:没有扩展名的textdoc和第二个textdoc.txt。好吧,如果只是复制它就可以,但它完全破坏了数据工作,特定的行记录在textdoc中的一个文件中没有扩展名的其他参数。我多次检查了对数据库的所有访问权限,代码中没有错误,并且本地工作路径不会发生mypath = (r'D:\my_folder')

修改

我错过了我的代码中的某些内容,与方法本身无关

所以工作一个:

这里给出的答案相同:PermissionError: [WinError 5]

import os

mypath = os.path.join(os.getenv('programdata'), 'my_folder')

if not os.path.isdir(mypath):
    os.makedirs(mypath)

和文件路径:

  

C:\ ProgramData \ my_folder \ document.txt的

0 个答案:

没有答案