使用python将文件夹中具有特定结尾的文件作为变量列出

使用python将文件夹中具有特定结尾的文件作为变量列出,python,Python,我正在尝试使用python在设置为变量的文件夹中列出具有特定结尾('.txt')的文件 我试图使用glob.glob('userFolder/*.txt')来完成这项工作 import os import glob userFolder='/homes/myFolder' glob.glob('userFolder/*.txt') 我得到了一个空列表。您的glob()调用中的文本userFolder只是字符串值的一部分,它与同名变量无关。如果是这样的话,您就不能直接在字符串中使用print或o

我正在尝试使用python在设置为变量的文件夹中列出具有特定结尾('.txt')的文件

我试图使用glob.glob('userFolder/*.txt')来完成这项工作

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:它知道当前的平台约定,知道如何加入任意数量的路径元素,或者如何在添加的部分中处理绝对路径,这样你就不必自己重新发明轮子。