鱼C论坛

 找回密码
 立即注册
查看: 6748|回复: 26

[技术交流] 改名汇总

[复制链接]
发表于 2022-2-11 17:52:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1:sub, add
import os
dirname5 = os.path.join('E:', '\sixmp3toxx')

fs5 = [i for i in os.listdir(dirname5)if i.endswith('.mp3')]

[os.rename(i,  f'{int(i[0:4])-4000}{i[4:]}') for i in fs5]

2: read txt, copy line to creat mp3

import os
txtline=[]
with open('11.txt','r') as f:
    lines = f.readlines()
    for line in lines:
        txtline.append(line.strip())

for name in txtline:
    file1=open(name,'w')

3: rename   name in mp5 and file in mp6
import os


fn55 = []
fn66 = []

##获取文件名
dirname5 = os.path.join('E:', '\sixmp5')
fs5 = [i for i in os.listdir(dirname5)if not i.endswith('.py')]

#获取文件
dirname6 = os.path.join('E:', '\sixmp6')
fs6 = [j for j in os.listdir(dirname6)if not j.endswith('.py')]


abspath = lambda x: os.path.join(dirname6, x)

m = 0
x = 0
for fn5 in fs5:
    n5, ext5 = os.path.splitext(fn5)
    fn55.append(n5)
    m=m+1

    for fn6 in fs6:
        n6, ext6 = os.path.splitext(fn6)
        fn66.append(n6)

        #print('检查真实文件 是否是.mp3')
        print(fn6[4])
    
        if int(n6) == int(n5[0:4]) and fn6[4] is '.' :
            os.rename(abspath(fn6), abspath(n5+ext6))
            x = x+1
            print(x)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-2-12 10:19:27 | 显示全部楼层
4: 完整的目录,导出目录 .txt
import os
import sys
path="E:/mp6";

myList=os.listdir(path)

with open("movieName.txt",'a',encoding='utf-8') as filetext:
        for root,dirs,files in os.walk(path):
                for name in files:

                        print(os.path.join(root,name));
                        filetext.write(os.path.join(root,name)+"\n");
                for name in dirs:

                        print(os.path.join(root,name))

                        filetext.write(os.path.join(root,name)+"\n\n");


filetext.close();
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-12 10:44:51 | 显示全部楼层
=IF(COUNTIF(B:B,A1)>0,"B列有","A列没有")

=LEFT(A1,7)

=SUBSTITUTE(B1,A1,)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-12 16:44:59 | 显示全部楼层
5: MP3 有标题的情况下,改名:
import os
import eyed3
import random

path = 'E:/sixmp8title/'

files = os.listdir(path) # 获得目录中所有文件
for item in files:
    item_path = path + item
    title = str.strip(eyed3.load(item_path).tag.title) # Python获得mp3文件标题 方法
    if (len(title) > 0): # 标题有值则更名
        item_path2 = path + title + ".mp3"
        while (os.path.exists(item_path2)): # 判断新文件名是否存在,存在的话 在文件名后追加随机数字
            item_path2 = path + title + str(random.randint(1, 100)) + ".mp3"
        os.rename(item_path, item_path2) # mp3 文件重命名
        print(1, item_path2)
    else:
        print(2, item_path)

print('修改完毕')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-12 17:26:43 | 显示全部楼层
1122.mp3, 标题: Knock Knock hello   改名:1122Knock Knock hello.mp3
import os
import eyed3
import random

path = 'E:/sixmp8title/'

files = os.listdir(path) # 获得目录中所有文件
for item in files:
    item_path = path + item# 获得old name
    title = str.strip(eyed3.load(item_path).tag.title) # Python获得mp3文件标题 方法
    
    oldname = item[0:-3]
    
    if (len(title) > 0): # 标题有值则更名
        item_path2 = path +oldname + title + ".mp3" #我增加了 3322

        while (os.path.exists(item_path2)): # 判断新文件名是否存在,存在的话 在文件名后追加随机数字
            item_path2 = path + title + str(random.randint(1, 100)) + ".mp3"


        os.rename(item_path, item_path2) # mp3 文件重命名

        print(1, item_path2)
    else:
        print(2, item_path)

print('修改完毕')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-15 15:27:14 | 显示全部楼层
格式:3XXX.mp3,3不满足4位,要补齐:0003XXX.mp3

[os.rename(i,  f'{int(i[0:4])+10:04}{i[4:]}') for i in fs5]

格式化字符串可以加个宽度为4,以0填充,默认就是左填充的,:04
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-15 15:34:01 | 显示全部楼层
import os
dirname5 = os.path.join('E:', '\sixmp3toxx')

fs5 = [i for i in os.listdir(dirname5)if i.endswith('.mp3')]

[os.rename(i,  f'{int(i[0:3]):04}{i[3:]}') for i in fs5]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-19 08:27:47 | 显示全部楼层
f'{int(i[0:4])+10:04}  


从右往左索引 7 位,即 -7     ,{i[-7:]}'

f'{int(i[:-7]):04}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-23 15:32:35 | 显示全部楼层
路遥-平凡的世界74.mp3

9010路遥-平凡的世界01.mp3

[os.rename(i,  f'{int(i[8:10])+9009:04}{i[0:]}') for i in fs5]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-3 07:23:12 | 显示全部楼层
查询 im 等出现的 次数
def findStr(desStr, subStr):  # desStr->母串  subStr->字串
    count = 0
    length = len(desStr)  # 获取母串长度,限定查找范围i
    if subStr not in desStr:   # not in 第一步判断 字串 是否在 母串中出现 ; not in 语法不了解建议复习前面
        print('在目标字符串中未找到字符串!')
    else:
        # 前边 length 开始作用,限定查找范围 ,each1表示下标 从0开始 到 length-1
        for each1 in range(length-1):
            if desStr[each1] != subStr[0]:  # 第二个条件 位置和字串开头必须一样
                continue
            else:
                for each2 in range(len(subStr)):  # 遍历字串和母串,遇到不一样就停下
                    # print(desStr[each1+each2], each1, each2, end=" ")
                    if desStr[each1+each2] != subStr[each2] or each1+each2 > length:
                        break
                else:  # 如果顺利执行完
                    count += 1
        print('子字符串在目标字符串中共出现 %d 次' % count)


desStr = input('请输入目标字符串:')
subStr = input('请输入子字符串(两个字符):')
findStr(desStr, subStr)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-4 07:39:18 | 显示全部楼层
wideband 发表于 2022-2-12 10:44
=IF(COUNTIF(B:B,A1)>0,"B列有","A列没有")

=LEFT(A1,7)

[os.rename(i,  f'{int(i[0:4])+1000}{name}{i[-6:]}') for i in fs5]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-8 18:29:18 | 显示全部楼层
print("北京北京\t北京北京")

\t 表示:N个制表位的结束;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-9 08:15:29 | 显示全部楼层
if x in s:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-11 09:00:17 | 显示全部楼层
1.txt 多行,每行 首字母改为大写
result = []
with open('1.txt', 'r+', encoding = 'utf-8') as f:
    for line in f:
        result.append(line.capitalize())
    f.seek(0)
    f.writelines(result)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-17 08:23:50 | 显示全部楼层
增强赋值运算、元组分解赋值、列表分解赋值、字符串分解赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-20 10:00:07 | 显示全部楼层
number = eval(input("请输入号码"))
print("恭喜中奖" if number == 987654 else"您未 中奖")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-23 18:41:01 | 显示全部楼层
sum=0
for i in range(1,11):
    sum+=i
else:
    print("和为:" ,sum)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-25 09:55:15 | 显示全部楼层
if xxxx:
    yyyyyy
else:
    zzzzz

////////////////////////////////////////

for xxxx:
    yyyyyy
else:
    zzzzz

////////////////////////////////////////

while xxxx:
    yyyyyy
else:
    zzzzz
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-18 07:13:36 | 显示全部楼层
break是终止循环的执行。

continue是结束本次循环。


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-18 08:28:42 | 显示全部楼层
Python中range()函数的用法
1、函数原型:range(start, end, scan):
参数含义:

start:计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5);

end:技术到end结束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5

scan:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
————————————————
版权声明:本文为CSDN博主「ths512」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ths512/article/details/96332220
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 09:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表