Skip to main content
 首页 » 编程设计

python之通过忽略文件名的前 3 个字母来获取目录中的文件名

2025年05月04日11lhb25

我必须通过 python 脚本读取目录中的所有文本文件,但首先我必须从每个文件中删除前 3 个字母以制作索引列表。

目录中包含数据的文件名如下。

zzz143 
zzz146 
zzz150 
. 
. 
. 
zzz250 

我必须从所有文件中删除 zzz 并在目录中创建所有这些文件的索引列表以从这些文件中读取数据。 我知道如何处理文件,例如

zzz.160.dat

对于这些类型的文件,我使用以下代码删除前缀和后缀。

def get_list(path, path_of_module_files ): 
prefix, suffix = path_of_module_files.split("<index>") 
d = {} 
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))] 
for item in onlyfiles: 
    if item.endswith(suffix) and item.startswith(prefix): 
        text = item 
        text = text[(find_str(text, prefix)+len(prefix)):] 
        text = text[:find_str(text, suffix)] 
        d[int(text)] = "/".join([path, item]) 
index_list = collections.OrderedDict(sorted(d.items(), key=lambda t: t[0])) 
return index_list 

此代码处理后缀和前缀,但现在在我的例子中它们只是一种前缀。

在我的例子中,现在它没有被 .或者 - 它只是 zzz143。我必须通过删除 zzz 来获取文件名,列表应该是这样的

143 
146 
150 
. 
. 
.  
250 

代替

zzz143 
zzz144 
zzz145 
. 
. 
.  
. 
zzz250 

如果有人给我一个想法或例子,如何通过循环获取所有文件名以提取该目录中的所有文件。我会很感激

请您参考如下方法:

要删除每个项目的前 3 个字符,您可以使用如下列表切片:

my_list = ['zzz143', 'zzz146', 'zzz150'] 
 
new_list = [item[3:] for item in my_list] 

输出:

>>> new_list 
['143', '146', '150']