Python:查找用户id和移动目录(Windows)

Python:查找用户id和移动目录(Windows),python,windows,Python,Windows,我试图完成的是让我的程序从当前所在的文件夹移动到另一个文件夹。在这种情况下,视频。代码如下: import getpass import os userid = getpass.getuser() print os.getcwd() os.rename("$s/userid.py", "%s/Videos/userid.py") % ('os.getcwd()', '%userid') 但是从power shell运行它会导致以下错误: Traceback (most recent

我试图完成的是让我的程序从当前所在的文件夹移动到另一个文件夹。在这种情况下,视频。代码如下:

import getpass
import os

userid = getpass.getuser()


print os.getcwd()

os.rename("$s/userid.py", "%s/Videos/userid.py")  % ('os.getcwd()', '%userid')
但是从power shell运行它会导致以下错误:

Traceback (most recent call last):
File "userid.py", line 9, in <module>
os.rename("$s/userid.py", "%s/Videos/userid.py")  % ('os.getcwd
WindowsError: [Error 3] The system cannot find the path specified
另外,如果我不只是想要当前用户的id,而是想要所有用户配置文件的id,我将如何做到这一点

谢谢

更新:它的工作!非常感谢大家

import getpass
import os
import shutil


currentpath = os.path.abspath(os.path.dirname(__file__))


shutil.copyfile("%s/userid.py" % currentpath, "%s/Videos/userid.py" % os.path.expanduser('~'))
%userid将只提供userid,您需要指定完整路径。另外请注意,您使用的$s应改为%s

请注意,这两个目录都应该预先存在。而目标目录中的文件不应


同样,您也可以使用
shutil.move()

可以通过使用常量调用来查询特殊文件夹的位置。此功能是在Windows Vista中引入的

以下模块定义了助手函数
get\u known\u folder\u path
,以及几种常用的
KNOWNFOLDERID
常量。如果安装了PyWin32,它还定义了
get\u known\u folder\u id\u list
list\u known\u folder
,允许列出虚拟文件夹,如apps文件夹

knownfolders.py:

导入ctypes
从ctypes导入wintypes
__all_uuuu=['FOLDERID','get_known_folder_path']
_ole32=ctypes.oledell('ole32')
_shell32=ctypes.oledell('shell32')
类GUID(ctypes.Structure):
_字段=('Data1',ctypes.c_ulong),
('Data2',ctypes.c_ushort),
('Data3',ctypes.c_ushort),
('Data4',ctypes.c_char*8))
定义初始化(self,guid\u字符串):
_ole32.IIDFromString(guid_字符串,ctypes.byref(self))
REFKNOWNFOLDERID=LPIID=ctypes.POINTER(GUID)
_ole32.IIDFromString.argtypes=(
wintypes.LPCWSTR,#lpsz,
LPIID)#LPIID
_ole32.CoTaskMemFree.restype=None
_ole32.CoTaskMemFree.argtypes=(wintypes.LPVOID,)
_shell32.SHGetKnownFolderPath.argtypes=(
REFKNOWNFOLDERID,#rfid
wintypes.DWORD,#dwFlags
wintypes.HANDLE,#hToken
指针(wintypes.LPWSTR))#ppszPath
def获取已知文件夹路径(文件夹id,htoken=None):
pszPath=wintypes.LPWSTR()
_shell32.SHGetKnownFolderPath(ctypes.byref(文件夹id),
0,htoken,ctypes.byref(pszPath))
文件夹路径=pszPath.value
_ole32.CoTaskMemFree(pszPath)
返回文件夹路径
尝试:
从win32com.shell导入shell,shellcon
除恐怖外:
通过
其他:
__all_uuuu+=['get_known_folder_id_list','list_known_folder']
PPITEMIDLIST=ctypes.POINTER(ctypes.c\u void\u p)
_shell32.SHGetKnownFolderIDList.argtypes=(
REFKNOWNFOLDERID,#rfid
wintypes.DWORD,#dwFlags
wintypes.HANDLE,#hToken
PPITEMIDLIST)#ppidl
def获取已知文件夹id列表(文件夹id,htoken=None):
pidl=ctypes.c_void_p()
_shell32.SHGetKnownFolderIDList(ctypes.byref(文件夹id),
0,htoken,ctypes.byref(pidl))
folder_id_list=shell.AddressAsPIDL(pidl.value)
_ole32.CoTaskMemFree(pidl)
返回文件夹\u id\u列表
def列表已知文件夹(文件夹id,htoken=None):
结果=[]
pidl=获取已知文件夹id列表(文件夹id,htoken)
shell_item=shell.SHCreateShellItem(无,无,pidl)
shell_enum=shell_item.BindToHandler(无,shell.BHID_enum items,
shell.IID_IEnumShellItems)
对于shell_枚举中的项:
result.append(item.GetDisplayName(shellcon.SIGDN\u NORMALDISPLAY))
result.sort(key=lambda x:x.upper())
返回结果
#知者
# https://msdn.microsoft.com/en-us/library/dd378457
#固定的
FOLDERID_Windows=GUID(“{F38BF404-1D43-42F2-9305-67DE0B28FC23}”)
FOLDERID_System=GUID({1AC14E77-02E7-4E5D-B744-2EB1AE5198B7})
FOLDERID_SystemX86=GUID({D65231B0-B2F1-4857-A4CE-A8E7C6EA7D27})
FOLDERID_Fonts=GUID(“{FD228CB7-AE11-4AE3-864C-16F3910AB8FE}”)
FOLDERID_ResourceDir=GUID(“{8AD10C31-2ADB-4296-A8F7-E4701232C972}”)
FOLDERID_UserProfiles=GUID({0762D272-C50A-4BB0-A382-697DCD729B80})
FOLDERID_Profile=GUID(“{5E6C858F-0E22-4760-9AFE-EA3317B67173}”)
FOLDERID_Public=GUID(“{DFDF76A2-C82A-4D63-906A-5644AC457385}”)
FOLDERID_ProgramData=GUID({62AB5D82-FDC1-4DC3-A9DD-070D1D495D97})
FOLDERID_ProgramFiles=GUID({905e63b6-c1bf-494e-b29c-65b732d3d21a})
FOLDERID_ProgramFilesX64=GUID(“{6D809377-6AF0-444b-8957-A3773F02200E}”)
FOLDERID_ProgramFilesX86=GUID(“{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}”)
FOLDERID_ProgramFilesCommon=GUID(“{F7F1ED05-9F6D-47A2-AAAE-29D317C6F066}”)
FOLDERID_ProgramFilesCommonX64=GUID({6365D5A7-0F0D-45E5-87F6-0DA56B6A4F7D})
FOLDERID_ProgramFilesCommonX86=GUID(“{DE974D24-D9C6-4D3E-BF91-F4455120B917}”)
#普通的
FOLDERID_PublicDesktop=GUID(“{C4AA340D-F20F-4863-AFEF-F87EF2E6BA25}”)
FOLDERID_PublicDocuments=GUID(“{ED4824AF-DCE4-45A8-81E2-FC7965083634}”)
FOLDERID_PublicDownloads=GUID(“{3D644C9B-1FB8-4f30-9B45-F670235F79C0}”)
FOLDERID_PublicMusic=GUID({3214FAB5-9757-4298-BB61-92A9DEAA44FF})
FOLDERID_PublicPictures=GUID(“{B6EBFB86-6907-413C-9AF7-4FC2ABF07CC5}”)
FOLDERID_PublicVideos=GUID(“{2400183A-6185-49FB-A2D8-4A392A602BA3}”)
FOLDERID_CommonStartMenu=GUID(“{A4115719-D62E-491D-AA7C-E74B8BE3B067}”)
FOLDERID_CommonPrograms=GUID(“{0139D44E-6AFE-49F2-8690-3DAFCAE6FFB8}”)
FOLDERID_CommonStartup=GUID(“{82A5EA35-D9CD-47C5-9629-E15D2F714E6E}”)
FOLDERID_CommonTemplates=GUID(“{B94237E7-57AC-4347-9151-B08C6C32D1F7}”)
#阅读者
FOLDERID_Desktop=GUID({B4BFCC3A-DB2C-424C-B029-7FE99A87C641})
FOLDERID_Documents=GUID({FDD39AD0-238F-46AF-ADB4-6C85480369C7})
FOLDERID_Downloads=GUID(“{374DE290-123F-4565-9164-39C4925E467B}”)
FOLDERID_Music=GUID({4BD8D571-6D19-48D3-BE97-422220080E43})
FOLDERID_Pictures=GUID('{33E28130-4E1E-4676-
import getpass
import os
import shutil


currentpath = os.path.abspath(os.path.dirname(__file__))


shutil.copyfile("%s/userid.py" % currentpath, "%s/Videos/userid.py" % os.path.expanduser('~'))
os.rename("$s/userid.py", "%s/Videos/userid.py")  % ('os.getcwd()', '%userid')