Python os.path.exists(r“%SystemDrive%\ Users \ {用户名} \ Documents”)

时间:2019-01-13 11:11:17

标签: python

我希望该程序自动检查文件是否存在。我想要一种始终检查当前用户的文档文件夹的方法。 if os.path.exists(r"%SystemDrive%\Users\{username}\Documents\QQOutput.bas"): 因此,就像目标始终是当前登录的用户一样,我不必为其他用户等更改代码。我不想为不同的用户/目录创建多个python文件。

import keyboard
import time
import ctypes

def Mbox(title, text, style):
    return ctypes.windll.user32.MessageBoxW(0, text, title, style)


if  os.path.exists(r"%SystemDrive%\Users\{username}\Documents\QQOutput.bas"):
    Mbox('It exists', 'Please open the csv and then press ok. It will work after 5 seconds', 1)
    time.sleep(5)
    keyboard.press_and_release('alt+f11')
    keyboard.press_and_release('ctrl+m')
    keyboard.write("QQOutput.bas")
    keyboard.press_and_release("enter")
    keyboard.press_and_release("f5")
    keyboard.press_and_release("enter")
else:
    Mbox('Error','QQOutput.bas is not in Documents!. Please put QQOutput.bas in your document folder.', 1)

用户:Marco
消息框:“请打开csv,然后按确定。它会在5秒钟后开始工作。
用户:James
MessageBox:'请打开csv,然后按OK。它会在5秒钟后起作用

1 个答案:

答案 0 :(得分:0)

使用os.path模块中的expanduser()函数。 expanduser('~')返回当前登录用户的主目录的路径。

您可以通过以下方式在脚本中使用它:

(base) C:\Users\andris>python
Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> doc = os.path.expanduser(r"~\Documents\QQOutput.bas")
>>> doc
'C:\\Users\\andris\\Documents\\QQOutput.bas'
>>> if  os.path.exists(doc):
...   work()