Python listdir仅调用CSV文件
是否可以使用listdir仅调用csv文件Python listdir仅调用CSV文件,python,Python,是否可以使用listdir仅调用csv文件 src_files = os.listdir('M:/Dashboards/Team/Metrics', suffix=".csv") 如果没有,在一行中调用csv文件最有效的方法是什么?我想这就是您要搜索的内容: 使用glob可以过滤文件名 您的代码可能如下所示: for file in glob.glob("*.csv"): print(file) 它不是listdir,但也可以工作。我希望那总比什么都没有好;) 我想这就是你要寻找的:
src_files = os.listdir('M:/Dashboards/Team/Metrics', suffix=".csv")
如果没有,在一行中调用csv文件最有效的方法是什么?我想这就是您要搜索的内容: 使用glob可以过滤文件名 您的代码可能如下所示:
for file in glob.glob("*.csv"):
print(file)
它不是listdir,但也可以工作。我希望那总比什么都没有好;) 我想这就是你要寻找的: 使用glob可以过滤文件名 您的代码可能如下所示:
for file in glob.glob("*.csv"):
print(file)
它不是listdir,但也可以工作。我希望那总比什么都没有好;)
从pathlib导入路径
src_files=Path('M:/Dashboards/Team/Metrics').glob(“*.csv”)
请注意,Path.glob()
返回一个生成器。如果你只需要
那个目录你可以做一次
导入全局
src_files=glob.glob('M:/Dashboards/Team/Metrics/*.csv')
从pathlib导入路径
src_files=Path('M:/Dashboards/Team/Metrics').glob(“*.csv”)
请注意,Path.glob()
返回一个生成器。如果你只需要
那个目录你可以做一次
导入全局
src_files=glob.glob('M:/Dashboards/Team/Metrics/*.csv')
你好
因此,首先,os.listdir()
将实际返回文件和目录
对于仅文件,请使用os.path
,然后您可以看到文件的扩展名:
from os import listdir
from os.path import isfile, join
files = [f for f in listdir(path) if isfile(join(path, f))]
if files:
for each_file in files:
if each_file.endswith(".csv"):
这里有一些代码示例Hello
因此,首先,os.listdir()
将实际返回文件和目录
对于仅文件,请使用os.path
,然后您可以看到文件的扩展名:
from os import listdir
from os.path import isfile, join
files = [f for f in listdir(path) if isfile(join(path, f))]
if files:
for each_file in files:
if each_file.endswith(".csv"):
对于干净的一行程序,有一些代码示例,我建议您理解以下内容:
the_dir = './'
file_list = [f for f in os.listdir(the_dir) if '.csv' in f]
对于干净的一行程序,我建议列出:
the_dir = './'
file_list = [f for f in os.listdir(the_dir) if '.csv' in f]
有几种方法可以实现这一点:
96.5 µs ± 10.8 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
57.8 µs ± 772 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
386 µs ± 3.26 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
57.8 µs ± 772 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
386 µs ± 3.26 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
listdir方法似乎是最有效的方法,但请记住,性能取决于目录中的文件数。有几种方法可以实现这一点:
96.5 µs ± 10.8 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
57.8 µs ± 772 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
386 µs ± 3.26 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
57.8 µs ± 772 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
386 µs ± 3.26 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
listdir方法似乎是最有效的方法,但请记住,性能取决于目录中的文件数。谢谢。有什么理由偏好生成器而不是第二种解决方案吗?这是一个非常好的问题:)生成器有保存内存和被惰性评估的好处。想象一下,一个包含数百万个文件的目录,实际上只需要前两个文件。如果没有生成器,您需要在处理它之前在内存中构建整个结果(!),而生成器一次只生成一个结果,但一旦遍历它们就会被消耗掉。再见,谢谢。有什么理由偏好生成器而不是第二种解决方案吗?这是一个非常好的问题:)生成器有保存内存和被惰性评估的好处。想象一下,一个包含数百万个文件的目录,实际上只需要前两个文件。如果没有生成器,您需要在处理它之前在内存中构建整个结果(!),而生成器一次只生成一个结果,但一旦遍历它们就会被消耗掉。看见