934926.jpg

韶华の

GF  2020-06-27 08:55
(仓鼠症重度患者;代下115磁力,50sp/G;更多看简介)

[全年龄正常向]python或者bat批处理都可以实现   400sp

需求原因:将含有多个子文件的漫画进行处理,将图片统一编号为 0001-9999

详细介绍:批量修改一个文件夹下含多个子文件夹中的所有图片名称,即将文件夹中的所有图片按照原有顺序重新延续命名,原本比方第一个子文件夹有50个文件,第二个子文件夹有30个文件,那么第二个子文件夹中的文件从51开始到80结束


需求帮助:希望大佬能写一个python文本或者bat批处理命令

相关阅读:https://blog.csdn.net/qq_38451119/article/details/81946938         (python相关处理方式,只不过他每个文件都是从0开始命名的我需要延续命名)            
                    

sp可以加,或者到 https://www.south-plus.net/read.php?tid-863576.html
这里留言,因为大概率悬案了
此帖悬赏结束
最佳答案: 200 SP币
最佳答案获得者: 216713c4

1.gif

息吹

Re:python或者bat批处理都可以实现  400sp

#!/usr/bin/python
# -*- coding:utf-8 -*-


import os

outer_path = 'C:/Users/82717/Desktop/sum'  
folderlist = os.listdir(outer_path)          #列举文件夹
s = 1
for folder in folderlist:    
    inner_path = os.path.join(outer_path, folder)
    total_num_folder = len(folderlist)       #文件夹的总数
    print ('total have %d folders' % (total_num_folder) )  #打印文件夹的总数
    
    filelist = os.listdir(inner_path)        #列举图片
    for item in filelist:
        total_num_file = len(filelist)       #单个文件夹内图片的总数
        if item.endswith('.jpg'):
            src = os.path.join(os.path.abspath(inner_path), item)           #原图的地址
            dst = os.path.join(os.path.abspath(inner_path), str(folder) + '_' + str(s) + '.jpg')        #新图的地址(这里可以把str(folder) + '_' + str(i) + '.jpg'改成你想改的名称)
            try:
                os.rename(src, dst)
                print ('converting %s to %s ...' % (src, dst))
                s += 1
            except:
                continue
    print ('total %d to rename & converted %d jpgs' % (total_num_file, s) )
最佳答案奖励: (+200) SP币

none.gif

95b74f3b

Re:python或者bat批处理都可以实现  400sp

在外面重新定义一个j来计数试试看?
热心助人奖励: (+1) SP币

848662.jpg

若起阳风

B3F  2020-06-27 09:53
(江湖救急SP)

Re:python或者bat批处理都可以实现  400sp

你想爬的那个网站我有写过,能爬全站,但我只爬的是视频预览图
热心助人奖励: (+1) SP币

none.gif

09840571

Re:python或者bat批处理都可以实现  400sp

ReNamer 现成的软件不香么
热心助人奖励: (+1) SP币

青山

Re:python或者bat批处理都可以实现  400sp

热心助人奖励: (+1) SP币

1322807.png

TinyTigerWhale

B6F  2020-06-27 10:38
(SSS = sexually salacious satyr)

Re:Re:Re:python或者bat批处理都可以实现  400sp

引用
引用第4楼d6cde0d6于2020-06-27 09:55发表的 Re:Re:python或者bat批处理都可以实现  400sp :


有一点bug,就是命名的时候从1结束完了不是2,而是10,11,12
如下图:


决定1完了是10还是2的是你windows注册表里的一个
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
NoStrCmpLogical =1:
    字符串逐个比较  1 < 10 < 11 < 12 < 2 10+在前
NoStrCmpLogical=0:
    数字比较的话2< 10 < 11 < 12 2在前
热心助人奖励: (+1) SP币

none.gif

k

Re:python或者bat批处理都可以实现  400sp

import glob, os

# 文件夹路径,自己改
directory = r'/Users/****/Desktop/z'
num = 1

def rename(dir, pattern):
    global num
    print("修改: " + dir + "文件夹的文件名")
    for pathAndFilename in glob.iglob(os.path.join(dir, pattern)):
        title, ext = os.path.splitext(os.path.basename(pathAndFilename))
#         往前补零
        new_name = str(num).zfill(4)
        os.rename(pathAndFilename,
                  os.path.join(dir, new_name + ext))
        num += 1

for dirpath, dirs, files in os.walk(directory):
    rename(dirpath, r'*.*')
热心助人奖励: (+1) SP币

934926.jpg

韶华の

B8F  2020-06-27 09:55
(仓鼠症重度患者;代下115磁力,50sp/G;更多看简介)

Re:Re:python或者bat批处理都可以实现  400sp

引用
引用第1楼216713c4于2020-06-27 09:12发表的 Re:python或者bat批处理都可以实现  400sp :
#!/usr/bin/python
# -*- coding:utf-8 -*-


import os
.......


有一点bug,就是命名的时候从1结束完了不是2,而是10,11,12
如下图:

934926.jpg

韶华の

B9F  2020-06-27 09:56
(仓鼠症重度患者;代下115磁力,50sp/G;更多看简介)

Re:python或者bat批处理都可以实现  400sp


848662.jpg

若起阳风

B10F  2020-06-27 10:04
(江湖救急SP)

Re:Re:python或者bat批处理都可以实现  400sp

引用
引用第3楼37d01fb4于2020-06-27 09:53发表的 Re:python或者bat批处理都可以实现  400sp :
你想爬的那个网站我有写过,能爬全站,但我只爬的是视频预览图


加上网页链接与图片对应的文本文件

类似如下
http://fc2club.com/html/FC2-1413471.html    download/20200625081009145.jpg
http://fc2club.com/html/FC2-1413508.html    download/20200625081118705.jpg

934926.jpg

韶华の

B11F  2020-06-27 10:15
(仓鼠症重度患者;代下115磁力,50sp/G;更多看简介)

Re:Re:Re:python或者bat批处理都可以实现  400sp

引用
引用第6楼37d01fb4于2020-06-27 10:04发表的 Re:Re:python或者bat批处理都可以实现  400sp :


加上网页链接与图片对应的文本文件

类似如下
.......



我也爬过  我爬的是对应的卖家信息  
但是这个将每个网页都保存下来,爬整站,这个我不会

848662.jpg

若起阳风

B12F  2020-06-27 10:20
(江湖救急SP)

回 7楼(韶华の) 的帖子

我也不是保存网页,就是保存网页链接,用来看个番号而已,以前这网站的图片内容标题有写上番号,现在没有,所以就另外保存一个网页链接

934926.jpg

韶华の

B13F  2020-06-27 10:34
(仓鼠症重度患者;代下115磁力,50sp/G;更多看简介)

Re:回 7楼(韶华の) 的帖子

引用
引用第8楼37d01fb4于2020-06-27 10:20发表的 回 7楼(韶华の) 的帖子 :
我也不是保存网页,就是保存网页链接,用来看个番号而已,以前这网站的图片内容标题有写上番号,现在没有,所以就另外保存一个网页链接



可以的话,改改代码,看能不能爬下整站

青山

Re:python或者bat批处理都可以实现  400sp


848662.jpg

若起阳风

B15F  2020-06-27 10:43
(江湖救急SP)

回 9楼(韶华の) 的帖子

你自己看我写的代码吧,以下内容仅楼主可见,勿购
[sell=99999]
https://github.com/zvqpmvajfk/py_spyder
[sell/]

848662.jpg

若起阳风

B16F  2020-06-27 10:45
(江湖救急SP)

Re:回 9楼(韶华の) 的帖子

引用
引用第14楼37d01fb4于2020-06-27 10:43发表的 回 9楼(韶华の) 的帖子 :


MD脑C了,算了

848662.jpg

若起阳风

B17F  2020-06-27 10:57
(江湖救急SP)

Re:Re:回 9楼(韶华の) 的帖子

引用
引用第15楼37d01fb4于2020-06-27 10:45发表的 Re:回 9楼(韶华の) 的帖子 :

MD脑C了,算了

再来,楼主可见
此帖售价 999999999 SP币,已有 1 人购买
若发现会员采用欺骗的方法获取财富,请立刻举报,我们会对会员处以2-N倍的罚金,严重者封掉ID!

934926.jpg

韶华の

B18F  2020-06-27 10:57
(仓鼠症重度患者;代下115磁力,50sp/G;更多看简介)

Re:python或者bat批处理都可以实现  400sp

非常感谢大家的帮助,
昵称为“息吹”和“k”两位的大佬的代码都能用,同时特别感谢 “TinyTigerWhale”大佬对于注册表问题的指点,但是最佳答案只有一个,所以最佳给了最先回答的“息吹”大佬,

同时希望“TinyTigerWhale”和“k”大佬各开300sp的出售框,我来购买

934926.jpg

韶华の

B19F  2020-06-27 10:59
(仓鼠症重度患者;代下115磁力,50sp/G;更多看简介)

Re:python或者bat批处理都可以实现  400sp

还请“息吹”到 https://www.south-plus.net/read.php?tid-863576.html  这里回复下

none.gif

k

Re:python或者bat批处理都可以实现  400sp

此帖售价 5 SP币,已有 1 人购买
若发现会员采用欺骗的方法获取财富,请立刻举报,我们会对会员处以2-N倍的罚金,严重者封掉ID!

934926.jpg

韶华の

B21F  2020-06-27 11:57
(仓鼠症重度患者;代下115磁力,50sp/G;更多看简介)

Re:Re:python或者bat批处理都可以实现  400sp

引用
引用第20楼a4383b3c于2020-06-27 11:13发表的 Re:python或者bat批处理都可以实现  400sp :
此处是被引用的出售帖

https://www.south-plus.net/read.php?tid=865635

没法购买   来这里吧

1322807.png

TinyTigerWhale

B22F  2020-06-27 11:57
(SSS = sexually salacious satyr)

回 18楼(韶华の) 的帖子

不用了 问题解决了就好
不用轻易改windows排列显示字符串的方式 如果你以后还会遇到其它情况可能需要"haha111" 在"haha2"前面
我记得你在弄漫画阅读器,顺序显示图片应该放在阅读器程序里实现而不是你提前修改文件名。就像这个也应该从python代码入手 造成的原因是os.listdir调用系统的显示方式,你在后面加个sort再key定义好也行

934926.jpg

韶华の

B23F  2020-06-27 12:00
(仓鼠症重度患者;代下115磁力,50sp/G;更多看简介)

Re:Re:Re:Re:python或者bat批处理都可以实现  400sp

引用
引用第6楼4b418b6e于2020-06-27 10:38发表的 Re:Re:Re:python或者bat批处理都可以实现  400sp :

决定1完了是10还是2的是你windows注册表里的一个
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
NoStrCmpLogical =1:
    字符串逐个比较  1 < 10 < 11 < 12 < 2 10+在前
.......



更改后 还是没有改变,这个只是浏览的时候排序是这样的,python调用的时候还是1-11-12-2

934926.jpg

韶华の

B24F  2020-06-27 12:05
(仓鼠症重度患者;代下115磁力,50sp/G;更多看简介)

Re:回 18楼(韶华の) 的帖子

引用
引用第22楼4b418b6e于2020-06-27 11:57发表的 回 18楼(韶华の) 的帖子 :
不用了 问题解决了就好
不用轻易改windows排列显示字符串的方式 如果你以后还会遇到其它情况可能需要"haha111" 在"haha2"前面
我记得你在弄漫画阅读器,顺序显示图片应该放在阅读器程序里实现而不是你提前修改文件名。就像这个也应该从python代码入手 造成的原因是os.listdir调用系统的显示方式,你在后面加个sort再key定义好也行

ok

934926.jpg

韶华の

B25F  2020-06-27 12:12
(仓鼠症重度患者;代下115磁力,50sp/G;更多看简介)

Re:python或者bat批处理都可以实现  400sp

files.sort(key= lambda x:int(x[:-4]))

完美     

1322807.png

TinyTigerWhale

B26F  2020-06-27 12:56
(SSS = sexually salacious satyr)

Re:Re:Re:Re:Re:python或者bat批处理都可以实现  400sp

引用
引用第23楼d6cde0d6于2020-06-27 12:00发表的 Re:Re:Re:Re:python或者bat批处理都可以实现  400sp :



更改后 还是没有改变,这个只是浏览的时候排序是这样的,python调用的时候还是1-11-12-2

是我先入为主了
摘自docs https://docs.python.org/3/library/os.html#os.listdir
os.listdir(path='.')¶
Return a list containing the names of the entries in the directory given by path. The list is in arbitrary order, and does not include the special entries '.' and '..' even if they are present in the directory.

所以无论如何用os.listdir必须要排序,直接用于与顺序有关的是不安全的

另外安全的key可以用
复制代码
  1. files.sort(key = lambda x: [int(i) for i in re.findall(r'\d+', x)])

fa90c499

Re:python或者bat批处理都可以实现  400sp