python csv文件 查找删除,使用Python查找目录中的所有CSV文件

如何在python中找到扩展名为.csv的目录中的所有文件?

看起来像stackoverflow.com/questions/3964681/的副本

可能重复查找Python中扩展名为.txt的目录中的所有文件

import os

import glob

path = 'c:\'

extension = 'csv'

os.chdir(path)

result = glob.glob('*.{}'.format(extension))

print(result)

这是一个简短的解决方案,但请注意,这只会在当前目录(脚本运行的位置)中进行扫描。 要更改使用os.chdir("/mydir"),如下所示:stackoverflow.com/questions/3964681/

@ppasler嗨,用你的消化编辑的答案。 另外我觉得现在它更加pythonic :)

from os import listdir

def find_csv_filenames( path_to_dir, suffix=".csv" ):

filenames = listdir(path_to_dir)

return [ filename for filename in filenames if filename.endswith( suffix ) ]

函数find_csv_filenames()返回一个文件名列表作为字符串,它们位于具有给定后缀的目录path_to_dir中(默认情况下为".csv")。

附录

如何打印文件名:

filenames = find_csv_filenames("my/directory")

for name in filenames:

print name

我正在使用此代码进行操作时遇到问题我试图使用csv = csv.reader(open(filenames,'rb'))显示目录中的所有内容,并且它给我一个错误"强制转换为unicode :需要字符串或缓冲区"你可以帮助我在这里请非常感谢,如果你能帮我解决它。

使用Python OS模块在目录中查找csv文件。

这里有一个简单的例子:

import os

# This is the path where you want to search

path = r'd:'

# this is the extension you want to detect

extension = '.csv'

for root, dirs_list, files_list in os.walk(path):

for file_name in files_list:

if os.path.splitext(file_name)[-1] == extension:

file_name_path = os.path.join(root, file_name)

print file_name

print file_name_path   # This is the full path of the filter file

我必须得到子目录中的csv文件,因此,使用tchlpr的响应我修改它以最适合我的用例:

import os

import glob

os.chdir( '/path/to/main/dir' )

result = glob.glob( '*/**.csv' )

print( result )

import os

path = 'C:/Users/Shashank/Desktop/'

os.chdir(path)

for p,n,f in os.walk(os.getcwd()):

for a in f:

a = str(a)

if a.endswith('.csv'):

print(a)

print(p)

这将有助于识别这些csv文件的路径

这将有助于识别这些csv文件的路径。

使用编辑将信息添加到您的答案中,而不是添加评论。 还可以使用Ctrl + K格式化代码

此解决方案使用python函数过滤器。此函数创建一个函数返回true的元素列表。在这种情况下,使用的匿名函数是在使用os.listdir('我要查看的路径')获取的目录文件列表的每个元素上部分匹配'.csv'

import os

filepath= 'filepath_to_my_CSVs'  # for example: './my_data/'

list(filter(lambda x: '.csv' in x, os.listdir('filepath_to_my_CSVs')))

请解释此代码如何解决OP的问题。

虽然thclpr提供的解决方案可以只扫描目录中的立即文件而不扫描子目录中的文件(如果有的话)。虽然这不是要求,但是如果有人希望扫描子目录,那么下面是使用os.walk的代码

import os

from glob import glob

PATH ="/home/someuser/projects/someproject"

EXT ="*.csv"

all_csv_files = [file

for path, subdir, files in os.walk(PATH)

for file in glob(os.path.join(path, EXT))]

print(all_csv_files)

从这个博客复制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值