使用 Python 查找目录中的所有 CSV 文件
如何在Python中找到扩展名为.csv的目录中的所有文件?
How can I find all files in directory with the extension .csv in python?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何在Python中找到扩展名为.csv的目录中的所有文件?
How can I find all files in directory with the extension .csv in python?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(14)
函数
find_csv_filenames()
以字符串形式返回文件名列表,这些文件名位于具有给定后缀(默认情况下为“.csv”)的目录path_to_dir
中。附录
如何打印文件名:
The function
find_csv_filenames()
returns a list of filenames as strings, that reside in the directorypath_to_dir
with the given suffix (by default, ".csv").Addendum
How to print the filenames:
通过使用过滤器和 lambda 的组合,您可以轻松过滤掉给定文件夹中的 csv 文件。
By using the combination of filters and lambda, you can easily filter out csv files in given folder.
使用 Python OS 模块在目录中查找 csv 文件。
简单的例子在这里:
use Python OS module to find csv file in a directory.
the simple example is here :
我必须获取子目录中的 csv 文件,因此,使用 tchlpr 的响应我修改它以最适合我的用例:
I had to get
csv
files that were in subdirectories, therefore, using the response from tchlpr I modified it to work best for my use case:这将有助于识别这些 csv 文件的路径
This will help to identify path also of these csv files
使用 python glob 模块可以轻松列出我们需要的文件。
Use the python glob module to easily list out the files we need.
虽然 thclpr 给出的解决方案有效,但它仅扫描目录中的直接文件,而不扫描子目录中的文件(如果有)。虽然这不是要求,但以防万一有人希望扫描下面的子目录,代码使用 os.walk
复制自 此博客。
While solution given by thclpr works it scans only immediate files in the directory and not files in the sub directories if any. Although this is not the requirement but just in case someone wishes to scan sub directories too below is the code that uses os.walk
Copied from this blog.
您可以使用
glob
使用recursive = true
,模式**
将匹配任何文件以及零个或多个目录、子目录以及目录的符号链接。You could just use
glob
withrecursive = true
, the pattern**
will match any files and zero or more directories, subdirectories and symbolic links to directories.该解决方案使用 python 函数过滤器。此函数创建一个函数返回 true 的元素列表。在这种情况下,使用的匿名函数是通过 os.listdir('the path i Want to Look in') 获得的目录文件列表的每个元素部分匹配“.csv”
This solution uses the python function filter. This function creates a list of elements for which a function returns true. In this case, the anonymous function used is partial matching '.csv' on every element of the directory files list obtained with os.listdir('the path i want to look in')
许多(链接的)答案使用 os.chdir() 更改工作目录。但你不必这样做。
递归打印
/home/project/
目录中的所有 CSV 文件:需要 python 3.5+。来自文档 [1]:
pathname
可以是绝对路径(如/usr/src/Python-1.5/Makefile
)或相对路径(如 ../.. /Tools/*/*.gif
)pathname
可以包含 shell 样式的通配符。recursive
为 true,则模式**
将匹配任何文件以及零个或多个目录、子目录以及目录的符号链接[1] https://docs.python.org/3/library/glob.html#glob.glob
Many (linked) answers change working directory with
os.chdir()
. But you don't have to.Recursively print all CSV files in
/home/project/
directory:Requires python 3.5+. From docs [1]:
pathname
can be either absolute (like/usr/src/Python-1.5/Makefile
) or relative (like ../../Tools/*/*.gif
)pathname
can contain shell-style wildcards.recursive
is true, the pattern**
will match any files and zero or more directories, subdirectories and symbolic links to directories[1] https://docs.python.org/3/library/glob.html#glob.glob
您可以使用
glob
使用recursive = True
,模式**
将匹配任何文件以及零个或多个目录、子目录以及目录的符号链接。You could just use
glob
withrecursive = True
, the pattern**
will match any files and zero or more directories, subdirectories and symbolic links to directories.简单单行解决方案:
针对当前目录或子文件夹的
A simple one-line solution for your current directory:
or for a subfolder:
请使用这个经过测试的工作代码。此函数将返回指定路径中具有绝对 CSV 文件路径的所有 CSV 文件的列表。
Please use this tested working code. This function will return a list of all the CSV files with absolute CSV file paths in your specified path.