使用python将文件夹中具有特定结尾的文件作为变量列出
我正在尝试使用python在设置为变量的文件夹中列出具有特定结尾('.txt')的文件 我试图使用glob.glob('userFolder/*.txt')来完成这项工作使用python将文件夹中具有特定结尾的文件作为变量列出,python,Python,我正在尝试使用python在设置为变量的文件夹中列出具有特定结尾('.txt')的文件 我试图使用glob.glob('userFolder/*.txt')来完成这项工作 import os import glob userFolder='/homes/myFolder' glob.glob('userFolder/*.txt') 我得到了一个空列表。您的glob()调用中的文本userFolder只是字符串值的一部分,它与同名变量无关。如果是这样的话,您就不能直接在字符串中使用print或o
import os
import glob
userFolder='/homes/myFolder'
glob.glob('userFolder/*.txt')
我得到了一个空列表。您的
glob()
调用中的文本userFolder
只是字符串值的一部分,它与同名变量无关。如果是这样的话,您就不能直接在字符串中使用print
或os
或任何其他变量名
您可以使用+
将变量值与全局模式连接起来:
text_files = glob.glob(userFolder + '/*.txt')
但更好的方法是用于处理路径构建:
files = glob.glob(os.path.join(userFolder, '*.txt'))
另一个选项是使用[pathlib
module],它有自己的glob支持:
import pathlib
userFolder = pathlib.Path('/homes/myFolder')
text_files = userFolder.glob('*.txt')
glob()
调用中的文本userFolder
只是字符串值的一部分,与同名变量无关。如果是这样的话,您就不能直接在字符串中使用print
或os
或任何其他变量名
您可以使用+
将变量值与全局模式连接起来:
text_files = glob.glob(userFolder + '/*.txt')
但更好的方法是用于处理路径构建:
files = glob.glob(os.path.join(userFolder, '*.txt'))
另一个选项是使用[pathlib
module],它有自己的glob支持:
import pathlib
userFolder = pathlib.Path('/homes/myFolder')
text_files = userFolder.glob('*.txt')
它应该是
glob.glob(userFolder+'/*.txt')
它应该是glob.glob(userFolder+'/*.txt')
Why“使用os.path.join()…”更好吗?@JosefKlimuk:它知道当前的平台约定,知道如何加入任意数量的路径元素,或者如何在添加的部分中处理绝对路径,这样你就不必自己重新发明轮子。为什么“使用os.path.join()…”更好吗?@JosefKlimuk:它知道当前的平台约定,知道如何加入任意数量的路径元素,或者如何在添加的部分中处理绝对路径,这样你就不必自己重新发明轮子。