如何将默认用户插入文件路径python

时间:2018-10-30 17:24:14

标签: python default filepath

我有一个创建文件夹的代码:

if not os.path.exists('C:\\Users\\MYNAME\\Documents\\Myfiles):
     os.chdir('C:\\Users\\MYNAME\\Documents')
     os.mkdir('Myfiles')

我希望它能够在任何计算机上运行,​​因此如何在不询问和执行类似操作的情况下获取默认用户:

DefaultUser = input('What is the default user for this PC?: ')
if not os.path.exists('C:\\Users\\' + DefaultUser + '\\Documents\\Myfiles'):
    os.chdir('C:\\Users\\' + DefaultUser + '\\Documents')
    os.mkdir('Myfiles')

编辑:默认情况下,我是指当前正在运行该程序的人。

3 个答案:

答案 0 :(得分:0)

您可以尝试以下操作,首先使用getpass获取用户名,然后使用占位符%s在路径中使用该用户名。我在Mac上尝试过,并返回了正确的用户名。

import getpass
Name = getpass.getuser()
print (Name) # To confirm that it gives the correct username

if not os.path.exists('C:\\Users\\%s\\Documents\\Myfiles' %Name):
    os.chdir('C:\\Users\\%s\\Documents' %Name)
    os.mkdir('Myfiles')

答案 1 :(得分:0)

由于您已经在使用os,因此请使用expanduser()中的path方法:

import os
curdir = os.path.expanduser('~/Documents')
# 'C:\\Users\\me/Documents'
newdir = 'Myfiles'
if not os.path.exists(os.path.join(curdir, newdir)):
    os.chdir(curdir)
    os.mkdir(newdir)

答案 2 :(得分:0)

因为答案与流程所有者有关

import os
import psutil

# get the PID
pid = os.getpid()

# get the username
username = psutil.Process(pid).username

未经测试,但可以在Windows和Linux上运行