作者kiwistar (暴风雪之喀秋莎)
看板Python
标题[问题] Mac用程式改档名改到档案不见
时间Mon Aug 31 12:39:07 2020
最近整理谜片时有一堆需要重新命名的档案
片名大概是ssni-157、ABP-990这样
写了一个程式去网站上爬出片名以後,再修改档案名称变成
"ABP-990 松冈すずの极上笔おろし 37 奇迹の淫女が2作目にして笔おろしセックスに
挑戦!"
这样的完整名称
程式码如下:
https://bit.ly/2QU25ON
执行时我观察到iterator一开始在遍历档案的时候会按照开头字母顺序,但只会先看大
写的档名(如:MIDE-765),小写档名的会被跳过(如apkh-131)。
後来就放着让他跑,睡觉去了。醒来以後发现不太对,有些小写字母开头的档案好像消
失了。对,没错!!直接被删掉了!!
但又不是全部,有些小写档名的档案是还在且有成功被重新命名的。
我在程式码里已经处理过大小写的问题了,但求教各位大大为什麽档案会消失呢?
----
Sent from
BePTT on my Google Pixel 4 XL
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.136.208.140 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1598848771.A.9F0.html
1F:推 tsoahans: 有没有可能video_name.text都抓到一样的东西结果就覆写08/31 13:03
2F:→ tsoahans: 掉 你应该先copy在rename比较保险08/31 13:04
3F:→ kiwistar: 我後来发现不只小写档案被删除,确切来说有一部分的档08/31 14:05
4F:→ kiwistar: 案消失了,但不知道是哪一些08/31 14:05
5F:推 TuCH: 连结怪怪的 打不开08/31 14:10
是看不到程式码还是没有连到github呢?
6F:→ TitanEric: 这个问题我想会需要档案研究用08/31 16:54
8F:→ kiwistar: c400dbf746245d584b09f3b5c608/31 16:58
後来我发现硬碟空间结结实实地多了1TB,整个程式会操作到档案的应该只有os.rename(),
因为我有发现从开头字母来看,S开头以後的档案跟小写开头的档案都消失了。
※ 编辑: kiwistar (114.136.208.140 台湾), 08/31/2020 17:08:27
9F:→ OrzOGC: 这个问题我需要档案来研究08/31 18:24
10F:推 HuangJC: 真了不起,写程式做这种事 XDDDD08/31 23:49
11F:→ HuangJC: iteration 里,很忌诲边改边递归你的指标,因为不可预测08/31 23:50
12F:→ HuangJC: 举例来说,如果写个 for loop 说要由前往後删一个字串08/31 23:50
13F:→ HuangJC: 一开始删 string[0], 接着删 string[1], 你觉得对吗?08/31 23:51
14F:→ HuangJC: 刚才的 [1] 现在跑到 [0] 了,你到底要对谁动作呢?边走08/31 23:51
这样会删掉原本的0、2、4、6...?
可是我只是改档名,而没有改档案。这样应该不会影响指标?
我有注意到,中间有几次程式出现错误,例如网路突然不稳导致预期的页面没有出来。但我重跑程式以後,它不会从头iteration,而是会从上次跑到断掉的地方继续开始,还满神奇的。
15F:→ HuangJC: 边改无法厘清你的行为,必需把你所有档案寄到我家试试..08/31 23:52
16F:→ HuangJC: 顺便寄包卫生纸来,我怕家里的不够,谢谢..08/31 23:52
可以喔!寄一颗4TB给我,我帮你装满(误
17F:→ TakiDog: 我写了一个打番号自动查自动载再上传云端,我都不知道我09/01 00:03
自动载这个太厉害了...
18F:→ TakiDog: 在干嘛..09/01 00:03
19F:→ TakiDog: 我建议不要拿片名当档名,有时候特殊字或是太长之类的问09/01 00:04
20F:→ TakiDog: 题很多,我是在产生一个json存档名09/01 00:04
我因为需要归档所以长久以来的习惯是用片名当档名。在这次的程式有造成问题,就是片名有"/"就会错误。所以我又写了一个if去把可能出现的"/"代换成空格QQ
※ 编辑: kiwistar (114.136.208.140 台湾), 09/01/2020 02:31:13
21F:推 HuangJC: string 的例子你理解了?删到 0,2,4,6 看来你是猜对了 09/01 05:26
22F:→ HuangJC: 可是你知道档案的 iteration 是什麽原则吗?万一是档名排 09/01 05:27
23F:→ HuangJC: 序,而你又改档名,那造成的混乱比 string 还严重啊! 09/01 05:27
24F:→ HuangJC: 除非你针对档案建立 handle,而後不管档名如何改变, 09/01 05:28
25F:→ HuangJC: handle不变,否则要怎麽 iteration 这些档? 09/01 05:28
26F:→ chickengod: 用档名当 tag 用 id 当档名 不然没办法避免奇怪字元 09/01 20:28
27F:→ chickengod: 的问题巴 说不定档案没不见 只是用 windows 档案总管 09/01 20:29
28F:→ chickengod: 看不到 你装 cygwin 去同个资料夹看看 09/01 20:30
29F:→ chickengod: 然後奇怪字元可以用 pat = re.compile(r'a|b', re.I) 09/01 20:50
30F:→ chickengod: pat.sub('', input_text) 一次取代多种奇怪字元 09/01 20:51
31F:→ chickengod: re.compile 放在回圈外面 可以避免重复制造object 09/01 20:53
32F:推 Tenging: 借转av版 09/02 19:00
33F:推 skyconquer: 大家超热心WWWW 09/03 10:32
34F:→ kiwistar: 回C大,我的OS是mac。然後我可能会再用空的资料夹实验 09/03 13:41
35F:→ kiwistar: 一下。处理特殊字元的确也很重要。 09/03 13:41
36F:推 HuangJC: 其实你该做的是 hit rate, 播放率统计,然後把不爱看的删 09/04 01:14
37F:→ HuangJC: 掉.. 取档名也该用自己的风格,比如人名系列,动作系列 09/04 01:15
38F:→ HuangJC: 重点是要方便你搜寻 09/04 01:15
39F:→ kiwistar: 我以前会删不爱看的,後来我发现我常常一两年後突然想 09/04 03:19
40F:→ kiwistar: 看当初被我删掉过的片...後来就很少删了,除非真的是o 09/04 03:19
41F:→ kiwistar: utliers 09/04 03:19
※ 编辑: kiwistar (223.137.126.59 台湾), 09/04/2020 03:23:35
42F:推 stillcolor: 哈哈哈哈哈哈哈抱歉我从头笑到尾!respect! 09/04 12:04
43F:推 wargods8402: 这有点难解释 请先提供档案 09/04 13:29
44F:推 TuCH: 我怀疑是资料的问题 可以提供资料我帮你检查看看 09/04 14:08
45F:推 HuangJC: 用 move 到另一个子目录的方法,目前这个子目录渐渐清空 09/04 14:38
46F:→ HuangJC: 这样就绝不会重覆处理;处理时从後往前,比如删字串,如 09/04 14:38
47F:→ HuangJC: 如果你从最後一句往前删,就不会有边删边移动的问题 09/04 14:39
48F:→ HuangJC: 凡是 iter 的都适用这原则,由後往前都不会出事.. 09/04 14:39
49F:→ HuangJC: 不然就是有的 compiler 会检查并提醒你必需先 copy 一份 09/04 14:40
50F:→ HuangJC: handle,以 copy 的运作,就不会边删边移动,否则会跳出错 09/04 14:40
51F:→ HuangJC: 误讯息,通常用 consist 这字眼,指你的资料造成不一致.. 09/04 14:41
52F:推 Rmmct: 神 08/01 16:54