检查所需文件是否在文件路径中
Check if needed files are in filepaths
我正在为我的云应用程序寻找解决方法,如果 git lfs 不受支持,它会下载所需的文件。
但是,我需要检查根文件夹中的 wandering-sponge-4.pth
、label_embeddings.npy
和 distilbert-dlf/pytorch_model.bin
下的 pytorch_model.bin
我用Path
检查了所有目录并将它们保存为数组中的字符串,这样我以后就可以检查上面的文件了。
我想出了下面的代码,returns 我是对的,如果所有文件都可用的话。
它总是打印错误,尽管每个文件都已就位。我错过了什么?
(我需要检查我的字符串数组中描述的三个名字)
# ugly workaround because streamlit cloud doesn't support git lfs -.-
for model in Path().cwd().glob("./*"):
foundFiles.append(str(model))
for files in Path().cwd().glob("distilbert-dlf/*"):
foundFiles.append(str(files))
checkFiles = ["pytorch_model.bin", "wandering-sponge-4.pth", "label_embeddings.npy"]
output = any([substring in checkFiles for substring in foundFiles])
print(output, foundFiles)
输出:
False
['/Users/lafllamme/Projects/transcript-app/labels.csv', '/Users/lafllamme/Projects/transcript-app/temp', '/Users/lafllamme/Projects/transcript-app/.DS_Store', '/Users/lafllamme/Projects/transcript-app/requirements.txt', '/Users/lafllamme/Projects/transcript-app/tempDir', '/Users/lafllamme/Projects/transcript-app/pycache', '/Users/lafllamme/Projects/transcript-app/env', '/Users/lafllamme/Projects/transcript-app/.gitignore', '/Users/lafllamme/Projects/transcript-app/wandering-sponge-4.pth', '/Users/lafllamme/Projects/transcript-app/helper.py', '/Users/lafllamme/Projects/transcript-app/.gitattributes', '/Users/lafllamme/Projects/transcript-app/app.py', '/Users/lafllamme/Projects/transcript-app/packages.txt', '/Users/lafllamme/Projects/transcript-app/.git', '/Users/lafllamme/Projects/transcript-app/label_embeddings.npy', '/Users/lafllamme/Projects/transcript-app/distilbert-dlf', '/Users/lafllamme/Projects/transcript-app/distilbert-dlf/config.json', '/Users/lafllamme/Projects/transcript-app/distilbert-dlf/pytorch_model.bin']
我想实现这样的目标:
if (file1, file2 not in directory and file 3 not in subdirectory):
....
解法:
for model in Path().cwd().glob("./*"):
foundFiles.append(str(model))
for files in Path().cwd().glob("distilbert-dlf/*"):
foundFiles.append(str(files))
checkFiles = ("distilbert-dlf/pytorch_model.bin", "wandering-sponge-4.pth", "label_embeddings.npy")
for path in checkFiles:
if os.path.exists(path)==True:
print('I found:', path)
你应该反其道而行之,看看检查文件是否在找到的文件中。否则,你寻找整个路径:
基本上,反转你的最后一个条件就足够了:
output = any([[checkFile in substring for substring in foundFiles] for checkFile in checkFiles])
如果至少有一个文件,这将是正确的。要知道他们是否都在这里:
output = all([any([checkFile in substring for substring in foundFiles]) for checkFile in checkFiles])
我正在为我的云应用程序寻找解决方法,如果 git lfs 不受支持,它会下载所需的文件。
但是,我需要检查根文件夹中的 wandering-sponge-4.pth
、label_embeddings.npy
和 distilbert-dlf/pytorch_model.bin
pytorch_model.bin
我用Path
检查了所有目录并将它们保存为数组中的字符串,这样我以后就可以检查上面的文件了。
我想出了下面的代码,returns 我是对的,如果所有文件都可用的话。
它总是打印错误,尽管每个文件都已就位。我错过了什么?
(我需要检查我的字符串数组中描述的三个名字)
# ugly workaround because streamlit cloud doesn't support git lfs -.-
for model in Path().cwd().glob("./*"):
foundFiles.append(str(model))
for files in Path().cwd().glob("distilbert-dlf/*"):
foundFiles.append(str(files))
checkFiles = ["pytorch_model.bin", "wandering-sponge-4.pth", "label_embeddings.npy"]
output = any([substring in checkFiles for substring in foundFiles])
print(output, foundFiles)
输出:
False ['/Users/lafllamme/Projects/transcript-app/labels.csv', '/Users/lafllamme/Projects/transcript-app/temp', '/Users/lafllamme/Projects/transcript-app/.DS_Store', '/Users/lafllamme/Projects/transcript-app/requirements.txt', '/Users/lafllamme/Projects/transcript-app/tempDir', '/Users/lafllamme/Projects/transcript-app/pycache', '/Users/lafllamme/Projects/transcript-app/env', '/Users/lafllamme/Projects/transcript-app/.gitignore', '/Users/lafllamme/Projects/transcript-app/wandering-sponge-4.pth', '/Users/lafllamme/Projects/transcript-app/helper.py', '/Users/lafllamme/Projects/transcript-app/.gitattributes', '/Users/lafllamme/Projects/transcript-app/app.py', '/Users/lafllamme/Projects/transcript-app/packages.txt', '/Users/lafllamme/Projects/transcript-app/.git', '/Users/lafllamme/Projects/transcript-app/label_embeddings.npy', '/Users/lafllamme/Projects/transcript-app/distilbert-dlf', '/Users/lafllamme/Projects/transcript-app/distilbert-dlf/config.json', '/Users/lafllamme/Projects/transcript-app/distilbert-dlf/pytorch_model.bin']
我想实现这样的目标:
if (file1, file2 not in directory and file 3 not in subdirectory):
....
解法:
for model in Path().cwd().glob("./*"):
foundFiles.append(str(model))
for files in Path().cwd().glob("distilbert-dlf/*"):
foundFiles.append(str(files))
checkFiles = ("distilbert-dlf/pytorch_model.bin", "wandering-sponge-4.pth", "label_embeddings.npy")
for path in checkFiles:
if os.path.exists(path)==True:
print('I found:', path)
你应该反其道而行之,看看检查文件是否在找到的文件中。否则,你寻找整个路径:
基本上,反转你的最后一个条件就足够了:
output = any([[checkFile in substring for substring in foundFiles] for checkFile in checkFiles])
如果至少有一个文件,这将是正确的。要知道他们是否都在这里:
output = all([any([checkFile in substring for substring in foundFiles]) for checkFile in checkFiles])