0

我想编写一个 Python 脚本,列出当前工作目录中的所有文件,如果文件名的长度在 3 - 6 个字符之间。此外,它应该只列出带有扩展名的文件.py

我找不到任何可以返回文件名长度的特定函数,只返回其内容的大小。

这是我的代码到目前为止的样子:

#!/usr/bin/env python3
import os

for file in os.listdir(os.getcwd()):
    if file.endswith(".py"):
        print(file)

谁能告诉我解决方案是什么样的?我是否在os.getcwd(RegEx)函数中使用正则表达式?

编辑:

我很抱歉发布这个微不足道的问题。我找到了解决方案,它看起来如下:

#!/usr/bin/env python3
import os

for file in os.listdir(os.getcwd()):
    if file.endswith(".py"):
        if ((len(os.path.splitext(file)[0])) > 2 and (len(os.path.splitext(file)[0])) < 7):
            print(file)

这适用于我的预期目的。感谢您的回答,他们让我意识到使用 len(filename) 是一种选择,因此我的问题不是很聪明。

4

3 回答 3

2

也许改写filefilename可能会让事情更清楚......

import os

for filename in os.listdir(os.getcwd()):
    if filename.endswith(".py"):
        print(filename, len(filename))

现在既然你知道if语句是如何工作的,你可能可以用len(filename)? :)

于 2020-06-15T13:46:57.870 回答
2

你可以试试

import os

for file in os.listdir(os.getcwd()):
    if file.endswith(".py") and 3 <= len(file[:file.find(".")]) <= 6:
        print(file)

这将仅打印文件名中包含 3 到 6 个字符且没有文件扩展名的文件。

于 2020-06-15T13:47:55.990 回答
1

你的变量file是一个字符串,所以你可以使用一个函数来检索一个字符串的长度

for file in os.listdir(os.getcwd()):
     if file.endswith(".py"):
         print(file, len(file))
于 2020-06-15T13:48:17.987 回答