/image/avatar.png

go语言中关于文件路径的使用总结

在编程中操作文件非常常见,如读取或者写入文件,但是在此之前会先构造出文件路径,在python中有相应的os.path库,对于文件路径的操作很简单,如

  • os.path.basename 获取文件名
  • os.path.dirname 获取文件目录名
  • os.path.join 拼接文件路径
  • os.path.splitext 拆分文件,获取文件名和扩展名
  • os.path.adspath 获取文件绝对路径
  • os.path.exists 判断文件或者文件夹是否存在

以下尝试在go语言中对上面的这些方法进行实现

go语言中执行命令的几种方式

go语言用来执行一切系统的命令相对python来说还是有点复杂的,执行命令是一个非常常见的需求,如调用一个系统命令,启一个exe等,这里分为几种情况,之后统一总结一下。

  • 只执行命令,不要输出结果
  • 执行命令并且要获取到输出结果
  • 阻塞和异步的执行

在python中使用注解函数

最近在看aiohttp的源码,发现一种没有见过的定义函数写法def __enter__(self) -> None ,函数后面还跟着一个->,这让一个以前受过C指针伤害过的人来说整个人都不好了,于是查了一下这个带箭头的用法,这里的->的指针没有半毛钱关系。

python中多线程与多进程中的数据共享问题

之前在写多线程与多进程的时候,因为一般情况下都是各自完成各自的任务,各个子线程或者各个子进程之前并没有太多的联系,如果需要通信的话我会使用队列或者数据库来完成,但是最近我在写一些多线程与多进程的代码时,发现如果它们需要用到共享变量的话,需要有一些注意的地方

使用aiomysql异步操作mysql

之前一直在使用mongo与redis,最近在项目中开始使用mysql数据库,由于现在的项目是全程异步的操作,所以在在网上查了下关于在python中异步的操作mysql,找来找去最后发现aiomysql的是实现最好的,现在简单介绍一下它的使用。

解决mysql服务器在无操作超时主动断开连接的问题

我们在使用mysql服务的时候,正常情况下,mysql的设置的timeout是8个小时(28800秒),也就是说,如果一个连接8个小时都没有操作,那么mysql会主动的断开连接,当这个连接再次尝试查询的时候就会报个"MySQL server has gone away"的误,但是有时候,由于mysql服务器那边做了一些设置,很多情况下会缩短这个连接timeout时长以保证更多的连接可用。有时候设置得比较变态,很短,30秒,这样就需要客户端这边做一些操作来保证不要让mysql主动来断开。