-
2021-02-09 10:16:39
我有两个列表:songs是歌曲标题filenames列表,是通过运行生成的歌曲MP3文件列表os.listdir()。
songs = ['The Prediction', 'Life We Chose', 'Nastradamus', 'Some of Us Have Angels', 'Project Windows', 'Come Get Me', "Shoot 'em Up", 'Last Words', 'Family', 'God Love Us', 'Quiet Niggas', 'Big Girl', 'New World', 'You Owe Me', 'The Outcome']
每首歌都是unicode。
filenames = ['Nas - Big Girl.mp3', 'Nas - Come Get Me.mp3', 'Nas - God Love Us.mp3', 'Nas - Life We Chose.mp3', 'Nas - Nastradamus.mp3', 'Nas - New World.mp3', "Nas - Shoot 'Em Up.mp3", 'Nas - Some of Us Have Angels.mp3', 'Nas - The Outcome.mp3', 'Nas - The Prediction.mp3', 'Nas Feat. Bravehearts - Quiet Niggas.mp3', 'Nas Feat. Ginuwine - You Owe Me.mp3', 'Nas Feat. Mobb Deep - Family.mp3', 'Nas Feat. Nashawn - Last Words.mp3', 'Nas Feat. Ronald Isley - Project Windows.mp3']
每个文件名都是一个字符串。
我希望能够查看songs列表,如果列表中的一项与songs列表中的内容匹配filenames,请将该文件重命名为歌曲的名称。
解决方案
这是一个将保留文件扩展名的版本,无论它是什么,并且都会通过filenames在匹配后从数组中删除该文件名来避免两次对同一文件名进行匹配。它也不区分大小写:
for song in songs:
for i, filename in enumerate(filenames):
if song.upper() in filename.upper():
os.rename(filename, song + os.path.splitext(filename)[1])
del filenames[i]
break
您也可以首先循环访问文件名,但是然后问题可能是两个文件名与同一首歌曲匹配,rename第二个操作将引发错误。因此,在该设置中,最好将歌曲与文件名匹配后从歌曲列表中删除。
更多相关内容 -
在一组字符串中查找一个指定字符(C语言)
2020-05-27 15:06:14问题:在一些字符串中搜索某个特定的字符串 使用指针数组来表示这些字符串,strings是一个指向指针数组的指针,value时我们要查找的字符值。注意指针数组以一个NULL指针结束,函数将检查这个值以判断循环何时结束。...问题:在一些字符串中搜索某个特定的字符串
使用指针数组来表示这些字符串,strings是一个指向指针数组的指针,value时我们要查找的字符值。注意指针数组以一个NULL指针结束,函数将检查这个值以判断循环何时结束。
版本1
#define TRUE 1 #define FALSE 0 int find_char(char **strings,char value) { char *string; while((string==*strings++)!=NULL) { while(*string!='\0') { if(*string++ == value) return TRUE; } } return FALSE; }
while((string = *strings++)!=NULL)
(1)它把strings当前所指向的指针复制到string中
(2)它增加strings的值,使它指向下一个值
(3)它测试string是否为NULL。当string指向当前字符串中作为终止目标的NULL时,while种终止版本2
int find_char_version2(char **strings,int value) { assert(strings!=NULL) while(*strings!=NULL) { while(**strings!='\0'){ if(*(*strings)++==value) return true; } strings++; } return FALSE; }
-
关于查找子字符串在字符串中所在位置
2019-08-27 09:44:52子字符串在字符串中第一次出现的位置 indexOf()函数 public class Main { public static void main(String args[]) { String string = "aaa456ac"; //查找指定字符是在字符串中的下标。在则返回所在字符串...子字符串在字符串中第一次出现的位置
indexOf()函数
public class Main { public static void main(String args[]) { String string = "aaa456ac"; //查找指定字符是在字符串中的下标。在则返回所在字符串下标;不在则返回-1. System.out.println(string.indexOf("b")); // indexOf(String str); 返回结果:-1,"b"不存在 // 从第四个字符位置开始往后继续查找,包含当前位置 System.out.println(string.indexOf("a",3));//indexOf(String str, int fromIndex); 返回结果:6 //(与之前的差别:上面的参数是 String 类型,下面的参数是 int 类型)参考数据:a-97,b-98,c-99 // 从头开始查找是否存在指定的字符 System.out.println(string.indexOf(99));//indexOf(int ch);返回结果:7 System.out.println(string.indexOf('c'));//indexOf(int ch);返回结果:7 //从fromIndex查找ch,这个是字符型变量,不是字符串。字符a对应的数字就是97。 System.out.println(string.indexOf(97,3));//indexOf(int ch, int fromIndex); 返回结果:6 System.out.println(string.indexOf('a',3));//indexOf(int ch, int fromIndex); 返回结果:6 } }
此部分运用菜鸟教程Java indexOf()函数用法
这个方法虽然可以解决一大部分关于子字符串查找的问题,但是如果需要查找子字符串从开始查找第N次出现的位置,这个方法就显得很吃力了。。。。查找子字符串从开始查找第N次出现的位置
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author 作者 E-mail: WYJ 1627407425@qq.com * @version 创建时间:2019年8月27日 上午9:18:06 * 类说明 */ public class 子字符串指定位置 { public static void main(String[] args) { String str = "aaabaabaaaab"; String st = "c"; Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int a = getFromIndex(str,st,n); System.out.println(a+1); } //子字符串modelStr在字符串str中第count次出现时的下标 private static int getFromIndex(String str, String modelStr, Integer count) { //对子字符串进行匹配 Matcher slashMatcher = Pattern.compile(modelStr).matcher(str); int index = 0; int x = 1; //matcher.find();尝试查找与该模式匹配的输入序列的下一个子序列 while(slashMatcher.find()) { index++; //当modelStr字符第count次出现的位置 if(index == count){ x = 0; break; } } //matcher.start();返回以前匹配的初始索引。 if(x==0) return slashMatcher.start(); //如果查找到了就返回所在位置的下标 else return -2; //如果没有查找到就返回-2,与最终的结果相加就变成-1了 } }
该部分借鉴 作者:dream_maker2333
借鉴网址:https://blog.csdn.net/huqingpeng321/article/details/54908694 -
java之字符串中查找字串的常见方法
2021-03-05 19:35:151、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。函数数名:...1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。
int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。
函数数名:indexOf
调用方式:Object(String).indexOf(String str,int startIndex)或String.indexOf(String str)
参数说明:str需要查找的字串.
startIndex 从指定的索引处开始查询,if (startIndex<0),则在程序执行中认为startIndex=0;
if(startIndex>Object.length) 则它被当作最大的可能索引。then 正常查询。
返回内容:if (在Object中查找到字串)返回字串第一次出现的索引
if(在Object中没有查找到字串) return -1
返回值类型:int
example:
/**
*
Title:LookSubstring
*
This program demostrate "look for a substring from known String"
*
Filename:LookSubstring.java
* @ author 14941
* @ version 1.0
*/
public class LookSubstring
{
public static void main(String[] args)
{
//define a known String
String str="assfdsffeffeffds";
//define a substring
String sustr="ff";
System.out.println(str.indexOf(sustr));
System.out.println(str.indexOf(sustr,8));
}
}
result:
6
9
2、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。
int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。
[C++] 习题 2.18 倒序查找字串
目录 前置技能 字符串 KMP 算法 需求描述 概要设计 具体实现 string.cpp strmatching.cpp main.cpp 倒序查找字串: 设计一个算法,在串 str 中查找字串 su ...
java 11-8 在大串中查找小串的案例
1.统计大串中小串出现的次数 举例: 在字符串"woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun& ...
JS判断字符串变量是否含有某个字串的实现方法
JS判断字符串变量是否含有某个字串的实现方法 varCts = "bblText"; if(Cts.indexOf("Text") > 0 ){ aler ...
java截取字符串中的数字
java从字符串中提取数字 随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取 ...
三种java 去掉字符串中的重复字符函数
三种java 去掉字符串中的重复字符函数 public static void main(string[] args) { system.out.println(removerepeatedchar( ...
1.3 正则表达式和Python语言-1.3.5使用 search()在一个字符串中查找模式(搜索与匹配 的对比)
1.3.5 使用 search()在一个字符串中查找模式(搜索与匹配的对比) 其实,想要搜索的模式出现在一个字符串中间部分的概率,远大于出现在字符串起始部分的概率.这也就是 search()派上用场的 ...
java 判断字符串中是否包含中文并过滤掉中文
java判断字符串中是否包含中文并过滤掉中文 CreateTime--2017年9月6日08:48:59 Author:Marydon 1.判断字符串中是否包含中文方法封装 /** * 判断字符串 ...
Java求字符串中出现次数最多的字符
Java求字符串中出现次数最多的字符 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51933611 Java ...
hiho1482出勤记录II(string类字符串中查找字符串,库函数的应用)
string类中有很多好用的函数,这里介绍在string类字符串中查找字符串的函数. string类字符串中查找字符串一般可以用: 1.s.find(s1)函数,从前往后查找与目标字符串匹配的第一个位 ...
随机推荐
正确理解静态Static关键字
与其他语言不通,C#没有全局变量和全局函数的感念,C#的所有字段和方法都出现在一个类的上下文中,在C#中与全局字段或函数等价的就是静态字段或方法.“全局字段或方法”与“C#的静态字段或方法”没有功能上 ...
DBN(深度信念网络)
DBN运用CD算法逐层进行训练,得到每一层的参数Wi和ci用于初始化DBN,之后再用监督学习算法对参数进行微调.本例中采用softmax分类器(下一篇随笔中)作为监督学习算法. RBM与上一篇随笔中一 ...
android获取在res文件下的图片资源
//得到该图片的id(name 是该图片的名字,"drawable" 是该图片存放的目录,getPackageName()是应用程序的包) int resID = getResou ...
图解JAVA参数传递
今天做项目,发现了一个问题,当String作为参数传递的时候,在函数内部改变值对外部的变量值无影响,如下代码: public static void main(String[] args) { Str ...
【AtCoder】ARC078
C - Splitting Pile 枚举从哪里开始分的即可 #include #define fi first #define se second #de ...
http和https的区别与联系
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂 ...
【驱动】LCD驱动(FrameBuffer)分析
背景知识 在多媒体的推动下,彩色LCD越来越多地应用到嵌入式系统中,PDA和手机等大多都采用LCD作为显示器材,因此LCD的应用很有实际意义! LCD工作的硬件需求:要使一块LCD正常的显示文字或图像 ...
sublinme 快捷键格式
{"keys": ["ctrl+shift+f"], "command": "reindent" , "arg ...
BZOJ1926:[SDOI2010]粟粟的书架——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=1926 https://www.luogu.org/problemnew/show/P2468 幸福幼 ...
-
在一组字符串中查找一个特定的字符
2018-05-27 23:44:28这里我们介绍两种方法。第一种:第二种: -
Python字符串中查找子串的方法
2021-02-03 10:57:09Python字符串中查找子串的方法发布于 2015-04-12 08:58:32 | 230 次阅读 | 评论: 0 | 来源: 网友投递Python编程语言Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个... -
Python进阶之路 高级编程 正则表达式-使用search方法在一个字符串中查找模式、匹配多个字符串
2019-06-18 21:28:15正则表达式 使用search方法在一个字符串中查找模式 搜索是正则表达式的另一类常用的应用场景。也就是从一段文本中找到一个或多个与文本模式匹配的字符串。先从搜索一个匹配字符串开始。 在一个字符串中搜索满足文本... -
编写一程序,输入一个字符串,查找该字符串中是否包含“abc”。
2018-05-09 22:01:57import java.lang.String.*;//这里调用java.long.String.contains()方法; import java.util.Scanner; public class shit { public static void main(String[] args) { Scanner wsq = new Scanner(System.in);... -
python查找一段字符串中是否包含指定字符串
2020-11-21 20:40:09有时候我们需要在某段字符串或者某段语句中去查找确认是否包含我们所需要的字符串信息, 举例子说、 某段变量是:A= ”My name is Clay, and you can get my name“ 1 2 3 4 A = "My ... -
Excel如何在excel中根据关键词从字符串中查找并提取
2021-01-26 10:42:31如图所示,我们事件中...在B3中输入以下语句,并填充 =IF(ISNUMBER(FIND("A",B3)),"优",IF(ISNUMBER(FIND("B",B3)),"良",IF(ISNUMBER(FIND("C",B3)),"中",IF(ISNUMBER(FIND("D",B3)),"及格",IF(ISNUMBER(FIND("E".. -
字符串中的查找与替换
2020-06-27 16:02:23字符串中的查找与替换 ...先说查找,字符串的查找主要使用strstr函数,其原型为:char * strstr(char * str1, char * str2),函数的功能是在str1中查找str2,如果str2是str1的子串,则返回str2在str1中第一次出现的位 -
EXCEL 查找某个字符在字符串中最后一次出现的位置
2019-10-05 04:47:58在EXCEL文档里想从很长的文件路径中取得文件名,【数据】→【分列】是个不错的选择,但用函数会显得更高大上一些。 首先,需要获取最后一个"\"所在的位置。 方法1: FIND("@",SUBSTITUTE(A1(字符串所在单元格),... -
SQL Server 中查找子串在字符串中的位置的函数PATINDEX()和CHARINDEX()
2019-02-28 13:57:44前言: 对于SQL Server中查找字符串的子串这个问题,许多人都习惯使用like,没错,但是如果出现下面情况: ...SQL Server中函数PATINDEX()和CHARINDEX()都是可以在一段字符串中查找子字符串位置的函数。 -
【超详细图解】字符串匹配Boyer-Moore算法:文本编辑器中的查找功能是如何实现的?
2019-12-08 19:17:16关于字符串匹配算法有很多,之前我有讲过一篇 KMP 匹配算法:图解字符串匹配 KMP 算法,不懂 kmp 的建议看下,写的还不错,这个算法虽然很牛逼,但在实际中用的并不是特别多。至于选择哪一种字符串匹配算法,在不同... -
查找字符在字符串中第N次出现的位置
2021-01-28 10:45:481.查找字符串 @find 在字符串 @str 中第 (@n) 次出现的位置。没有第 (@n) 次返回 0。返回@find在@str中第(@n)次出现的位置。没有第(@n)次返回0。create function fn_find(@find varchar(8000), @str varchar(8000), ... -
python练习之查找一个文件中的字符串是否在另一个文件中存在
2018-09-14 10:20:30#读取所有world文件中的行 for line in fo.readlines(): #依次读取每行 line = line.strip(); #去掉每行头尾空白 matchObj = re.search( line, " %s " % colines, re.M | re.I); #正则匹配开始,... -
【子串查找】在字符串中找出子串第一次出现的位置,所有出现的位置(次数),是否包含子串
2020-10-01 20:04:10【子串查找】在字符串中找出子串第一次出现的位置,所有出现的位置(次数),是否包含子串 -
python在文件中查找指定字符串所在行号
2019-05-31 10:09:251、首先读取文件,本文以读取Excel问价为例,其他文件也一样 2、查找指定字符串 例如: 3、b即为所要查找元素所在的行号,输出即可 -
在字符串中查找指定字符
2015-01-31 22:54:2810-1. 在字符串中查找指定字符(15) 时间限制 400 ms 内存限制 65536 kB ...输入一个字符串S,再输入一个字符c,要求在字符串S中查找字符c。如果找不到则输出“Not fou -
Qt 查询字符串数据
2020-12-22 16:10:25(1)函数QString::startsWith(),判断某一个字符串是否以某个字符串开头;该函数具有两个参数,第一个参数制定了一个字符串,第二个参数指定是否大小写敏感,默认大小写敏感;eg:QString str = "Welcome to you !";... -
Java实现根据某个字符串查找其在txt文件的哪一行,然后对哪一行整行数据重新写入,其他行的数据不变
2019-07-29 13:25:41网上找了很多例子,都不是我想要的效果。...效果如图(在txt中查找'/192.168.1.104'字符串,找到存在该字符串的一行,整一行替换成新的字符串'/192.168.1.104:21514 data: +RC012000044444444444444444444444... -
字符串中查找第一个不重复字符
2018-06-22 19:44:20字符串中查找第一个不重复字符 题目描述 在一个字符串中找到第一个没有重复元素的字符并返回。 例:输入:"yellow" 返回:“y” 输入:"tooth" 返回:“h” 输入:“coco” ... -
ubuntu 查找文件中的字符串
2018-10-26 17:57:44查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l 1.正则表达式... -
Python CSV 中查找指定字符串
2019-04-13 12:51:00#!/usr/bin/env python# -*- coding: utf-8 -*-import reimport timeimport sysimport csvimport pandas as pdimport numpy as npimport datetimeimport timeimport randomimport requestsimport os############查询... -
MATLAB 查找指定字符或字符串所在位置
2021-09-27 20:17:16找到指定字符串位置: k = strfind(str,pat) 示例: str = 'Find the starting indices of substrings in a character vector'; k = strfind(str,'in') k = 1×5 2 15 19 36 41 拆解文件名(除去后缀) str = ... -
数据结构中的串
2018-12-08 12:10:20C语言中有个字符串,数据结构中有个串,联系是二者都是存储字符的,区别在于前者我们直接定义数组存储,以\0结尾,如 char str[size]; 而后者我们是把字符串看成一个线性表,定义成结构体形式,结尾用length控制... -
[码海拾贝 之Perl]在字符串数组中查找特定的字符串是否存在
2014-10-14 08:03:35前言检索一个字符串是否存在于一个数组中, 最基本的想法应该就是对数组进行循环, 逐个判断数组的每个元素值和给定的值是否相等。(在Java语言还可以把数组转成 List , 在 list 中直接有 contains 方法可以使用)看一... -
matlab怎么在元胞数组中查找字符串 与strfind()和findstr()不同 (推荐!)
2019-04-19 15:30:02我们知道在字符串中寻找匹配的字符串可以用strfind() 和findstr() 两个函数,但是通过xlsread函数从Excel中导出的数据为元胞,这样就不能使用strfind函数了,这种情况下有两种办法。 1、用ismember()函数,这个... -
Linux下查找目录中所有文件中含有某个字符串,并且只打印出文件名
2019-03-07 17:02:16查找目录下的所有文件中是否含有某个字符串 查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri &quot;IBM&quot; 查找目录下的所有文件中是否含有某个字符串,并且只打印出... -
C语言 —— 获取字符串中两个字符之间的的数据
2019-04-10 23:25:22问题描述:获取字符串中两个字符之间的数据。最近写SMTP代理,需要获取发送方与接收方的邮件名称。 字符串为 “MAIL FROM:<test1@163.com>\r\n” , 获取字符':'冒号和字符'\r'之间的值 <test1@163.com>...