FK二十一 发表于 2021-10-11 15:18:14

写协助办公程序受阻


因为一定的业务需求,我想写一个给文件批量重命名的程序,但是遇到了一个无法攻克的技术困难。
困难:使用os.listdir()方法的时候,生成的list是无序的。
想要批量重命名,我的思路是先创建一个txt文件,把新的文件名排好序,然后用 os.listdir 和 os.rename
但由于os.listdir 把需要重命名的文件名无序化了,就导致不能用os.rename和for in来自动化重命名了。。。
想问一下神通广大的鱼油们,有什么技术可以克服这个困难吗?{:5_100:}

15013523101 发表于 2021-10-11 15:18:15

用os.scandir 返回方法stat 这么多属性 总能排好你可以查看一下 文件是按什么排的序    右击<排序方式>

wp231957 发表于 2021-10-11 15:27:38

好像有一个叫拖把更名器,狠强大,
如果没有其他需求,仅仅更名,没必要自己写

人造人 发表于 2021-10-11 15:31:47

你的那些文件名有什么规律?
你想要把什么名字改成什么名字?举个例子

qq1151985918 发表于 2021-10-11 15:41:39

本帖最后由 qq1151985918 于 2021-10-11 15:44 编辑

你想让它有顺序自然是有排序方式的吧?排序方式是什么规律找出来不就可以了么
或者你把你想重命名的文件名和想更正后的文件名发上来

FK二十一 发表于 2021-10-11 15:57:10

qq1151985918 发表于 2021-10-11 15:41
你想让它有顺序自然是有排序方式的吧?排序方式是什么规律找出来不就可以了么
或者你把你想重命名的文件名 ...

我们【系统文件】里的顺序是按拼音或者首字母在字母表里的顺序排序的,我试过一个类似的排序方法,但是 D 和 “大”和“等”这三个(举个例子)的顺序和系统文件的排序不一样。并且顺序还和文件类型有关,就很混乱。{:5_104:}

FK二十一 发表于 2021-10-11 15:57:51

wp231957 发表于 2021-10-11 15:27
好像有一个叫拖把更名器,狠强大,
如果没有其他需求,仅仅更名,没必要自己写

去找找

FK二十一 发表于 2021-10-11 15:59:52

人造人 发表于 2021-10-11 15:31
你的那些文件名有什么规律?
你想要把什么名字改成什么名字?举个例子

就一堆人名,然后系统文件是按照拼音首字母在字母表顺序,我找了个别人写的函数,搞完发现三个姓“刘”的顺序死活跟系统不一样。。。

人造人 发表于 2021-10-11 16:44:44

FK二十一 发表于 2021-10-11 15:59
就一堆人名,然后系统文件是按照拼音首字母在字母表顺序,我找了个别人写的函数,搞完发现三个姓“刘”的 ...

你想要把什么名字改成什么名字?举个例子
例如 123.txt 改成 456.txt
张三.c改成 李四.cpp

FK二十一 发表于 2021-10-11 17:24:42

FK二十一 发表于 2021-10-11 15:57
去找找

确实,它实现了我的设想,很屌。

FK二十一 发表于 2021-10-11 17:25:30

人造人 发表于 2021-10-11 16:44
你想要把什么名字改成什么名字?举个例子
例如 123.txt 改成 456.txt
张三.c改成 李四.cpp

就是像把张三改成李四这样的

人造人 发表于 2021-10-11 17:30:32

FK二十一 发表于 2021-10-11 17:25
就是像把张三改成李四这样的

重命名的规则是什么?

FK二十一 发表于 2021-12-17 15:18:08

15013523101 发表于 2021-10-11 15:18
用os.scandir 返回方法stat 这么多属性 总能排好你可以查看一下 文件是按什么排的序    右击

我去,不小心发现我的工作已经结束了
页: [1]
查看完整版本: 写协助办公程序受阻