2025-11
9

又想起了Python

By xrspook @ 8:44:06 归类于: 烂日记

大概两年前,我买了一本叫《超简单 用Python让Excel飞起来》的书。那本书是怎么买的呢?我搜索关于Python跟Excel的书,然后就看到了它。说白了就是教你用Python去处理Excel。前面的部分是一些批处理,后面的那些是利用Excel的数据作图。批处理的部分我看得挺认真,也实际操作过。感觉基本上都是可以实现的,我在VSCode里写Python,然后引用Excel文件,最后把结果输出到Excel。的确,这样干可以批处理一些基本的问题,但关键是我是个完美主义者,所以我对输出格式有一定的要求,实际上这本书教你的东西不怎么包括具体调整格式本身。通常来说做法大概是读取文件,然后通过pandas处理,最后输出。在这里我学得比较认真的部分是批处理文件,无论是把一个工作簿的每个工作表分别另存为单独的工作簿还是把某个文件夹里面的工作簿全部都合并到一个工作簿里。这些翻来覆去的操作其中一个跑不掉的是要进行一定的循环,循环的思路搞清楚了以后一切都好说。学的时候很认真,也都全部尝试过了,但一段时间之后不用还是会全部都忘光光,最后剩下的只是知道一定可以通过批处理实现这些功能。

在电脑里面安装Python,然后通过这种方式的确是可以处理Excel文件,后来我也进一步对那些输出的文件进行了格式控制,但总的来说,还是有些不如人意的地方。就数据处理本身来说,Python没有任何问题,但关键是跟VBA这个原生的东西相比,在处理格式方面还是显得有点有心无力,又或者无法控制。一个很明显的地方就在于跟VBA相比,Python读取文件跟输出文件都得一定时间,可能数据处理本身不需要多少性能,但关键是打开文件关闭文件这都需要时间。后来机缘巧合之下,我知道了在VBA里可以通过ADO的方式用SQL解决数据的问题。ADO的方式意味着我并不需要真的打开文件,这样就节省了很多时间。以至于后来我用VBA取代了Python的功能,因为Python之所以好用是因为把Excel的数据传进去了以后,它对数据进行了一个类似数据库的标准化改造,然后用标准的语言实现某些功能。相比之下我觉得SQL更简单易懂。所以自从迷上了ADO+SQL以后,我基本上就没再用Python处理Excel了。我一直也没有进行太多高端的操作。可以肯定的是,如果我要做的话,实现同样的功能,我可以通过这两种途径分别得出方案。

回到一开始那本书,前面部分说的是一些批处理,后面部分说的是用Python作图,其实那个时候我并不明白为什么要用Python作图,因为Excel本来就可以作图,而且就控制来说Excel是可视化的,Python全部都得写上去,所以后面作图的部分我看得很潦草,直接快速掠过,只是知道能干这种事而已。

直到这一次数据分析需要做箱形图。Excel可以做箱形图,但对箱形图的控制不如人意,我想到了Python,也想到了R语言。我知道这两个东西通过某些包就可以轻松做出我想得到或者想不到的图。

R语言被我放下了太远,以至于我已经基本不知道该如何操作了,所以我选择先用Python探索一下作图。

2021-05
19

终于有了BLF的官方字幕

By xrspook @ 9:49:52 归类于: 烂日记

NBC到底有没有外挂字幕,从我的观察看来是有的,而且那个外挂字幕好像是西班牙语(虽然他们写的是英语,骗谁呢!),但是怎么下载呢?用什么工具下载呢?能在线下载NBC的网站上去很少,就更加不用说下载NBC字幕的了,既然youtube-dl可以下载NBC的视频,为什么就不能下载它的字幕呢?为了这个东西,我研究了一番要怎么在youtube-dl上下载字幕。理论上视频和字幕可以分开下载,但现在人们的新玩法是下载视频的同时,而且把本来是外挂的字幕内嵌到视频里,这个想法很新颖,这样就可以一次性做完两件事了,但我感觉这种内嵌估计不是硬压,因为如果硬压的话,会需要比较多的时间。下载视频如果网速不好非常的耗时间,但下载字幕就只是个文本,相当简单的一件事。

对我来说,youtube-dl其实最大的障碍是不能直接使用,怎么才能使用呢?这又花了我一点时间。某个东西的技术我又不是很成熟,不确定一定可以,所以翻来覆去搞不清是下载不了字幕,还是说在下载之前的某个步骤做得不好。

最终我的确做到了下载NBC上面的BLF官方西班牙语tt字幕。tt字幕(全称SMPTE-TT,tt是它的文件后缀)是一个XML结构的东西,看上去很像网页文件,它的结构也的确跟网页文件没什么区别。也不管到底这个是什么东西,反正能下载回来,肯定有转换的方式,一开始我想到的是用Subtitle Edit, 结果发现我存的那个软件太久远,所以要使用那个软件的话,需要我装Net Framework 3.5,对老电脑来说,那显然是要安装的,但是对win10来说,这个是不一定安装的存在,我担心安装了这个东西会影响到我的office,因为office的power系列功能很大程度都依赖这个net framework,我一直都用的好好的,如果装了个低版本的导致我出状况,那就真的很郁闷了。所以我尝试过用其它字幕软件,接着发现我最常用的那个Aegisub不行。怎么才可以把tt文件转化为很大路的srt呢?其实当我看到那个tt文件的时候,我就意识到用普通的srt不能解决问题,因为字幕是西班牙语的,有非常多的特殊字符,必须用UTF-8才能解决问题,而srt字幕通常对应的是用ANSI。所以其实转换为ass文件会更好。不知道为什么,网上到处都是vtt或者webtt字幕,却几乎没有tt字幕。 vtt字幕是油管自带的,而webtt字幕是HTML5视频里面很流行的字幕。这两种字幕都可以在网上直接找到转换的地方,但是tt却不行。

纠结了一大轮以后,我甚至有想过要自己写python脚本转换。正在这个时候,网友给我发来好消息,他的Subtitle Edit可以转换这个字幕。之所以我的那个不行,是因为我不想安装框架,无法打开软件。我赶紧又下了一个最新版本的Subtitle Edit,非常快速高效地就把我想要的东西转换了出来了,但是,总感觉转换出来的时间轴怪怪的,tt格式的字幕的毫秒设定到底是什么规则呢?他们的时间表达居然是“00:00:00:00”,一般字幕文件的时间表达是“00:00:00.000”

知道如何从NBC下载BLF的外挂字幕,也知道了如何把下载回来的tt字幕转化为ass以后,所有痛点全部都打通了,最后的问题只是NBC最后会不会把这部电视剧全部都免费放出来。

youtube-dl单纯下载NBC网站视频外挂字幕的批处理脚本(复制下面的东西,做适量修改[比如文件路径],然后保存为.bat文件)

盘符
cd\改这里\改这里
youtube-dl –all-subs –skip-download NBC视频网址1(你得去播放页确定那个视频有外挂字幕哦)
youtube-dl –all-subs –skip-download NBC视频网址2(你得去播放页确定那个视频有外挂字幕哦)

困扰我的字幕问题终于有了一个非常完美的结局,实在让人喜出望外。

2020-03
26

py2脚本改写为py3

By xrspook @ 13:06:29 归类于: 烂日记

昨天,我在电脑上部署了Python3.8,令我意外的是BlogBus转WordPress的脚本居然可以在这个东西上一次通过。我在家里试的时候,如果安装现行的最新版本的Python,会有语法错误,为什么在单位这台电脑上就没有这个烦恼呢?

晚上我再去研究的时候,发现原来单位这台电脑在2017年就已经装过Python2.7。中午运行那个脚本的时候,估计不知道为什么那个东西自动调用了老的版本,所以没有发生语法错误。Python2跟Python3的语法差异很多人都中过招。习惯用Python2的人写Python3脚本肯定会有很多毛病。几天前当我在电脑上运行不通的时候,我的做法是卸载了Python3,重新安装Python2,这个做法是对的,是最快捷的解决方式,但是昨天晚上,我却选择了一个故意撞墙的方式——我要修改10年前的代码,让它在Python3上面正常运行。理论上,如果我在电脑上部署好了Python的环境,我应该可以在多种模式下正常运行那个东西。但实际上,当我很笨拙地在命令行运行那个东西的时候,的确可以,但是如果我用批处理文件调用运行,即便我在用户跟全局都都设置好了环境,依然运行失败。为什么会这样?我不知道,但显然很多人都遭遇过这种失败,所以网上的解决办法有很多,为什么这个运行环境,不是设置好了就万事大吉呢?我不太清楚。

在电脑上运行过Python以后,我觉得这个东西实在太神奇了。如果是其他语言,脚本与运行之间还有一个编译的过程,C语言是这样的,JAVA把貌似也得这样,但Python直接写完代码就可以运行。当然,运行失败的时候,他们会告诉你哪里出了问题。哪里出了问题跟有提示教你怎么改才对完全是两码事。我还在跟网友吐槽为什么设置好了环境还是批处理失败的时候,他建议我在VSCode里写py,同时也装上Python的插件。VSCode的Python插件有很多,要装哪个我完全不知道。因为VSCode是微软的产品,搜索出来的第一个Python插件也是微软昨的,至于那个东西有什么用,我实在不知道,我迷迷糊糊就安装了。在VSCode里编辑py的时候,会有一个在终端运行的选项,那里就可以看到运行效果。当我打开py文件的时候,右下角不断弹出叫我安装另外一个插件。一开始的时候我没有装,但是后来我还是装了,当然我也可以设置它不再提醒。我在装那个插件之前,我就在第1个插件的终端运行过一次py,有错误代码,跟我在CMD命令行显示错误代码是一样的。但是当我安装了第2个插件以后,奇迹的事情发生了。运行同样的脚本,在同样的位置依然会报错,但是下面还多了一行告诉我这个错误是什么,同时也会建议我应该怎么改。格式上的问题插件会直接告诉我要怎么改,比如Pyhon3在print的时候,要比2多写一对括号。另外一些状况属于插件无法确切地告诉你这个错误到底意味着什么,是哪里出问题了,但问题被描述得比较明白了。在见识过这些东西之后,我真心觉得,英语不好的人千万不要学编程,又或者说学编程,而且编得好的人,英语烂不到哪里去,因为他们看到的满眼都是那些鬼。如果你遇到一个喜欢用拼音缩写去命名函数写脚本的人,就我个人而言,我会非常怀疑他的技术。

之前让我觉得可能要折腾一个晚上才能搞定的脚本改写,在VSCode以及那两个插件的帮助之下,大概15分钟就搞定了,真的让人非常有成就感!

我不知道,我是不是天生是编程的料,但是一定程度上,我喜欢那些东西。我喜欢那些严格的逻辑,也喜欢那些在我印象之中或者意料之外的效果。

© 2004 - 2026 我的天 | Theme by xrspook | Power by WordPress