python3 使用 os.path.exists 和 shutil.move 使用通配符或与数字匹配来检查和移动
python3 checking and moving using os.path.exists and shutil.move using wild cards or match with number
我正在尝试使用以下代码查看文件是否存在。问题是文件中有一个数字在文件生成时发生变化,我不知道如何匹配名称发生变化的文件。
文件名为FD 464738 - DailyReport.xlsx现有代码:
#Match and find if file exists
while not os.path.exists('/home/jobsuser/Downloads/FD 464738 - DailyReport.xlsx'):
time.sleep(1)
#Move and rename file
shutil.move('/home/jobsuser/Downloads/FD 464738 - DailyReport.xlsx', '/home/jobsuser/files/DailyFDReport_'+fnameyesterday+'.xlsx')
我试过用通配符 * 替换数字部分,但没有用。
寻找任何允许匹配和移动发生的建议。
您可以尝试这样的操作:
from pathlib import Path
path = Path('/home/jobsuser/Downloads')
while list(path.glob('FD * - DailyReport.xlsx')) == []:
time.sleep(1)
files = list(path.glob('FD * - DailyReport.xlsx'))
shutil.move(files[0], ...)
有一些未知数,所以肯定有改进的空间。
我正在尝试使用以下代码查看文件是否存在。问题是文件中有一个数字在文件生成时发生变化,我不知道如何匹配名称发生变化的文件。 文件名为FD 464738 - DailyReport.xlsx现有代码:
#Match and find if file exists
while not os.path.exists('/home/jobsuser/Downloads/FD 464738 - DailyReport.xlsx'):
time.sleep(1)
#Move and rename file
shutil.move('/home/jobsuser/Downloads/FD 464738 - DailyReport.xlsx', '/home/jobsuser/files/DailyFDReport_'+fnameyesterday+'.xlsx')
我试过用通配符 * 替换数字部分,但没有用。 寻找任何允许匹配和移动发生的建议。
您可以尝试这样的操作:
from pathlib import Path
path = Path('/home/jobsuser/Downloads')
while list(path.glob('FD * - DailyReport.xlsx')) == []:
time.sleep(1)
files = list(path.glob('FD * - DailyReport.xlsx'))
shutil.move(files[0], ...)
有一些未知数,所以肯定有改进的空间。