Notebook-2019.08

2019.08.02

1.shell改文件名字,改成数字开头,且左边补0,保证数字位数。

i=1;for file in ./*mkv;do mv $file $(printf %04d $i)-lego-qa-blur.mkv;i=$((i+1));done

数字:$(printf %04d $i)
i自增:i=$((i+1))

取file‘.’前面的字母:${file%%.*},可以用在以下场景:
for file in `ls -l`;do ffmpeg -i $file -c:a copy -c:v copy -ss 00:00:00 -t 30 /data/IR/dataset/lego_qa_blur/30s/${file%%.*}_30s.mkv;done

2019.08.07

pycharm 缩进的一些问题,虽然在pycharm中设置了tap=4 space,但是还经常碰到以下问题:

TabError: inconsistent use of tabs and spaces in indentation

原来设置这个有两个地方:
https://blog.csdn.net/niexia_/article/details/78280569
图片说明

图片说明

显示出空格

如图: File -> Settings -> Editor -> General -> Appearance -> Show whitespaces
图片说明

2019.08.09

Linux 中查看某个库是否存在的命令

ldconfig -p | grep lts
查看liblts.so是否存在

pytorch 验证集数据载入的问题,如果在某种情况下用DataLoader不方便的话:

可以定义一个Dataset:val_set,然后用如下方式获取元素:

for index in range(3, len(val_set)-3):
    val_data = val_set[index]

2019.08.12

conda出现下面的情况
The following packages are causing the inconsistency:
conda回滚:
conda list --revision
conda install --version N

2019.08.13

import cv2时出现错误:
ImportError: numpy.core.multiarray failed to import
解决:
pip install opencv-python==3.4.2.17 numpy==1.14.5

2019.08.20

登录ftp

lftp liubing:liubing@codec.cloud.qiyi.domain
用户名:密码
mget * 可以批量下载文件
下载文件夹:
下载:mirror rdir ldir  // 将远程目录rdir下载到本地目录ldir
上传:mirror -R ldir rdir  // 将本地目录ldir上传到远程目录rdir

下载网页中的文字到txt上:

参考了stackflow

shell
wget 'http://search.twitter.com/search.json?q=hi' -O hi.json
To append:
wget 'http://search.twitter.com/search.json?q=hi' -O - >> hi.json
With Python:
urllib.urlretrieve('http://search.twitter.com/search.json?q=hi', 'hi.json')
To append:
hi_web = urllib2.urlopen('http://search.twitter.com/search.json?q=hi');
with open('hi.json', 'ab') as hi_file:
  hi_file.write(hi_web.read())

下载swift

swift://wgyunlou4.oss.qiyi.storage:8080|wgyunlou4.oss.qiyi.storage:8080/v1/AUTH_da77eedcdea8491fa469969d1b6ed7d4/20190701_operation_video_04/pgc_openapi_mp_iqiyi/20190701/15/cb/e4633ed6d7956b6c11281cf1cd7b195d.mkv

直接wget |之后的东西

wgyunlou4.oss.qiyi.storage:8080/v1/AUTH_da77eedcdea8491fa469969d1b6ed7d4/20190630_operation_video_04/pgc_openapi_mp_iqiyi/20190630/ad/da/5522bff3d302c1ad3e0eeb2e8b6ad88d.mkv

视频下载链接失效,进冷存了

冷热拷贝的接口:

把uri参数写源地址,返回的就是能下载的地址
mams.sync.cloudstorage.qiyi.domain/service/accessfile?uri=swift://wgyunlou4.oss.qiyi.storage:8080|wgyunlou4.oss.qiyi.storage:8080/v1/AUTH_da77eedcdea8491fa469969d1b6ed7d4/20190630_operation_video_04/pgc_openapi_mp_iqiyi/20190630/ad/da/5522bff3d302c1ad3e0eeb2e8b6ad88d.mkv&product=ppc

把上面的接口放到浏览器中会返回:

{"uri":"swift://bjyunlou16.oss.qiyi.storage:8080|bjyunlou16.oss.qiyi.storage:8080/v1/AUTH_96c3e460ecc8430b9935dc17ee2bd5fc/20190630_operation_video/pgc_openapi_mp_iqiyi/20190630/ad/da/5522bff3d302c1ad3e0eeb2e8b6ad88d.mkv"}

右键可以另存为json
因为失效url很多,需要批量处理,下面这个函数可以将feiqingxi.txt中的失效url批量转换,并append到feiqingxi_real_url.txt中

import urllib.request
txt = '/data/IR/test_20190820/feiqingxi.txt'
f = open(txt, 'r')
# result = list()
with open('feiqingxi_real_url.txt', 'ab') as hi_file:
    for line in f.readlines():
        print(line)
        get_url = 'http://mams.sync.cloudstorage.qiyi.domain/service/accessfile?uri=' + line[:-1] + '&product=ppc'
        print(get_url)
        hi_web = urllib.request.urlopen(get_url)
        hi_file.write(hi_web.read())
        hi_file.write(b'\n')
f.close()
line.find('sss')找不到返回-1,找到返回索引值

直接下载http的url,没有权限的问题

http://bj.oss.qiyi.storage/bd-ugc-qichuan/material/ugc_openapi_mp_iqiyi/20190720/b5/10/d745804981c64127862d20927ac9d7c9.mp4

加个鉴权

http://bj.oss.qiyi.storage/bd-ugc-qichuan/material/ugc_openapi_mp_iqiyi/20190720/b5/10/d745804981c64127862d20927ac9d7c9.mp4?authorization=oss-auth-v2/i71c3c6a8f16a044cb8c450059cafdb8

2019.08.24

ubuntu的软件源更换

ubuntu软件源的知识参考详解ubuntu软件源
apt-get update 和 apt-get upgrade
源列表:/etc/apt/sources.list

  • sudo apt-get update 更新软件列表

    会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在新立得软件包管理器里看到的软件列表,都是通过update命令更新的。
    因此每次更改了/etc/apt/sources.list之后都要执行apt-get update

  • sudo apt-get upgrade 更新软件

会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新、

apt-get upgrade很慢,是因为官方软件源的服务器在国外,在我们国内有许多学校和公司的镜像网站都对 Ubuntu 的官方软件源进行了镜像备份,并且定期地进行同步更新,所以更换成国内的软件源就可以了。

什么是软件源

什么是软件源?
源,在Ubuntu下,它相当于软件库,需要什么软件,只要记得正确的软件名就可以用命令安***r>sudo apt-get install 软件名
例如:你要安装gcc软件,那么你就可以再终端中输sudo apt-get install gcc,这样就能帮你装好gcc软件,如果源里没有这个软件时,此命令就没法完成。
当然,如果你要删除软件时,可以再终端中输入:
sudo apt-get remove软件名

ubuntu安装软件的方式有三种:

  • 通过 apt 包管理工具从软件源中安装
  • 通过 deb 格式的软件包安装
  • 从软件源码手动编译安装

通过软件源安装软件的原理
 所谓的apt是ubuntu自带的包管理工具

其实通过软件源安装软件的原理非常简单,Ubuntu 系统中自带了一个名为 apt的软件包管理工具,它的主要功能就是负责 Ubuntu 系统中所有软件包的管理,包括从软件源中下载软件,卸载系统中已经安装的软件等。而每当我们通过 sudo apt-get install <package-name>命令去安装一个软件时,apt 包管理工具就会从系统中一个叫做源列表的文件中去读取软件源的网址信息,查找可以包含该软件的软件源的网址,然后就从这个网址上把指定的软件给下载下来,然后由 apt 包管理工具在本地进行一些解压和安装的其他操作。</package-name>

软件源的分类

  • ubuntu官方软件源

    Ubuntu 官方软件源中包含了 Ubuntu 系统中所用到的绝大部分的软件,它对应的源列表
    是 /etc/apt/sources.list。在这个文件中,记录了 Ubuntu 官方源的地址。

  • PPA软件源
    PPA: “Personal Package Archives”

    PPA 源出现的背景是因为系统自带的源是很有限的,我们肯定需要一些其他的软件包然而如果是直接下载deb格式的文件的话,又不能获取到更新和维护,所以这就用到了十分重要的 PPA 源了。
    所谓 PPA 源,就是指 “Personal Package Archives” ,也就是个人软件包集。这其实是一个网站,即-launchpad.net。Launchpad 是 Ubuntu 母公司 Canonical 有限公司所架设的网站,是一个提供维护、支援或联络 Ubuntu 开发者的平台。由于不是所有的软件都能进入 Ubuntu 的官方的软件库,launchpad.net 提供了 PPA,允许开发者建立自己的软件仓库,自由的上传软件。供用户安装和查看更新。

如何添加ppa软件源

添加 PPA 软件源的命令:sudo add-apt-repository ppa:user/ppa-name
删除 PPA 软件源的命令:sudo add-apt-repository --remove ppa:user/ppa-name
图片说明

如何修改ubuntu镜像源

  • 1、备份系统默认源
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  • 2、打开软件源文件
    sudo vim /etc/apt/sources.list
  • 3.将以下内容替换到源文件(注意在清华大学网站上选择合适自己系统的版本)
    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
    # 预发布软件源,不建议启用
    # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
  • 4、更新软件源
    sudo apt-get update
    如果替换完源之后,upgrade还是很慢,尝试将此页面全部取消勾选:
    图片说明

2019年8月27日

How do SO (shared object) numbers work?
使用devtoolset管理gcc版本,安装gcc,gcc很难装,试了很多方法都不行

编译代码时出现
图片说明

但ldd可以看到zstd库
图片说明
图片说明
将/usr/lib/x86_64-linux-gnu加入到linux共享库位置环境变量LD_LIBRARY_PATH后,不再报错。

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

2019年8月28日
在终端运行可以make成功,但在clion中报找不到一些库
从终端中打开clion:./clion-2019.1.3/bin/clion.sh

PATH和LD_LIBRART_PATH
PATH是可执行文件的路径
LD_LIBRARY_PATH是动态库的路径

全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 18:05
点赞 评论 收藏
分享
06-26 17:24
已编辑
宁波大学 Java
迷失西雅图:别给,纯kpi,别问我为什么知道
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务