因此,如果我有一个类似下面的目录,则可以扫描名称中带有特定代码的文件数。例如,如果我希望从17042020开始的文件数在下面的目录中为6?
1704202001-01.csv
1704202001-02.csv
1704202002-01.csv
1704202002-02.csv
1704202003-01.csv
1704202003-02.csv
001.png
002.pdf
003.docx
004.jpg
答案 0 :(得分:1)
答案 1 :(得分:0)
使用os获取文件列表:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: monitoring-claim
namespace: monitoring
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Gi
selector:
matchLabels:
usage: monitoring
答案 2 :(得分:0)
使用现在最适合路径的pathlib
模块
import pathlib
from typing import List
"""!
@brief Finds files with the given unique code in name in directory
@param[in] directory pathlib.Path directory of searching
@param[in] unique_code str code in the filename
@return List[pathlib.Path] list of filepaths with unique code in name
"""
def find_files(directory:pathlib.Path, unique_code:str) -> List[pathlib.Path]:
result:List[pathlib.path] = list()
for filepath in directory.glob('*'):
if filepath.is_file() and unique_code in filepath.name:
result.append(filepath)
return result
# Set Your directory!
directory:pathlib.Path = pathlib.Path('your/dir')
unique_code:str = '17042020'
found_files:List[pathlib.Path] = find_files(directory, unique_code)
print(f"Found files with unique code [{unique_code}]: {len(found_files)}")
for filepath in found_files:
print(f" {filepath.resolve()}")
答案 3 :(得分:0)
在Unix / Linux / macOS(以及您的OS)上,您可以在shell中进行多种操作。
假设您位于指定的文件夹中,则可以执行以下操作:
ls | grep "1704202001" | wc | awk '{print $1}'
ls
将列出您的文件夹文件/子文件夹
grep
将仅使用包含模式的行过滤搜索
wc
将计算搜索的行数/字符数
awk
将被告知仅打印第一列(wc会回答3个数字,只有第一个数字对我们很有趣)
如果您想进行递归搜索,则可以使用find
find . -name "*1704202001*" | wc | awk '{print $1}'
find
将在.
和RegExp模式的所有子文件夹中进行搜索(因此我们使用通配符*
在完整的文件名中匹配该模式)。
最后但不是列表,您可能要计算包含模式的文件数量(不是名称,而是文件本身)。您可以使用grep
:
grep -R "1704202001" | wc | awk '{print $1}'
您既要使用Python,又要使用操作系统帮助,这个答案是针对最后一个问题的:)
希望对您有些帮助。