V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
l4ever
V2EX  ›  Python

vscode 坑死我了.

  •  
  •   l4ever · 2019-10-09 13:17:17 +08:00 · 10293 次点击
    这是一个创建于 1633 天前的主题,其中的信息可能已经有所发展或是发生改变。
    事情是这样的, 最近要个转 base64 的功能, 国庆假期下班前我想,
    小 case. import base64
    再二进制读图片,转换即可.....
    说干就干我调试了半天. 输出的结果始终不对,
    用<img src="">引用 base64 转换之后的图片要么是破图,要么只显示一部分..
    今天想起这个事情又开始继续折腾, 我发现小图正常, 大图不行.....




    直到中午我才发现, vscode 终端输出的字符太多就直接不显示了
    而我每次都是从终端里面复制的转换结果......
    29 条回复    2019-10-10 11:10:48 +08:00
    pkookp8
        1
    pkookp8  
       2019-10-09 13:22:26 +08:00 via Android
    我一直很不相信手动操作的结果,特别是复制粘贴
    自然语言还好
    机器的语言少一些特殊不可见字符意思完全不一样
    LokiSharp
        2
    LokiSharp  
       2019-10-09 13:23:06 +08:00
    Windows 的终端是这样的啊
    Keanuo
        3
    Keanuo  
       2019-10-09 13:25:06 +08:00
    一开始也是直接终端里粘
    后来觉得麻烦就直接 fs.writeFileSync()了
    Qcui
        4
    Qcui  
       2019-10-09 13:52:21 +08:00
    控制台超长时好像会显示不全的,不仅是 vs code 吧
    arrow8899
        5
    arrow8899  
       2019-10-09 13:56:17 +08:00
    pycharm 不会
    mnssbe
        6
    mnssbe  
       2019-10-09 14:01:49 +08:00
    这个应该是你自己的问题
    reus
        7
    reus  
       2019-10-09 15:35:49 +08:00
    我就没遇到这种终端,垃圾 vscode。
    Kobayashi
        8
    Kobayashi  
       2019-10-09 17:12:09 +08:00 via Android
    和 vscode 无关,也和终端无关。终端没有输出长度限制,不然根目录下 tree / 早就停止输出了。是管道有缓存大小限制。https://stackoverflow.com/questions/38583627/is-there-a-character-limit-of-the-output

    参考上面第一条评论(非第一条答案)
    zjyl1994
        9
    zjyl1994  
       2019-10-09 17:52:19 +08:00   ❤️ 1
    呃呃呃,为什么不写到文件啊老哥?
    sai233
        10
    sai233  
       2019-10-09 17:53:54 +08:00
    对,vscode 垃圾!
    k9982874
        11
    k9982874  
       2019-10-09 18:07:04 +08:00 via iPhone   ❤️ 2
    base64 不是==结束,不是就应该意识到不对了吗?
    jinliming2
        12
    jinliming2  
       2019-10-09 19:02:59 +08:00 via iPhone   ❤️ 1
    @k9982874 也不是所有 base64 都是双等号结束啊……有单等号的,也有没等号的,看原始数据长度定的啊……
    而且等号可以省略的啊……
    collery
        13
    collery  
       2019-10-09 21:01:14 +08:00
    @k9982874
    @jinliming2 大兄弟说的对
    zachlhb
        14
    zachlhb  
       2019-10-09 21:09:27 +08:00 via Android
    vscode 终端内容超长会显示成链接的,要点击才会显示完整内容
    fairytale
        15
    fairytale  
       2019-10-09 21:23:56 +08:00 via iPhone
    vscode 终端内容超长会折叠后显示成链接的,要点击才会显示完整内容+1
    Pastsong
        16
    Pastsong  
       2019-10-09 21:33:10 +08:00   ❤️ 2
    >> file.txt
    cookey39
        17
    cookey39  
       2019-10-09 22:49:35 +08:00 via Android
    vs code....只用它看代码
    LiuJiang
        18
    LiuJiang  
       2019-10-09 23:08:37 +08:00
    大兄弟别用 vscode 了,真的。
    ClericPy
        19
    ClericPy  
       2019-10-09 23:11:10 +08:00
    这是常识性的东西吧, 我在 Windows 上做压测, 用 code runner 每次到 1600 多行必定停止, 报错都不显示, 所以就查了那个最大长度问题, 如果速度慢点, 几万行都不会停止
    话说这都什么坏习惯(虽然我 Sublime REPL 的时候经常干), 复制东西这种事一般不都重定向个文件用完删或者直接剪切板赋值么... pyperclip.copy
    一行代码的事
    k9982874
        20
    k9982874  
       2019-10-09 23:47:51 +08:00 via iPhone
    @collery @jinliming2 请先尝试用 python 的 base64 库做个未经人为修改的不带==或=结束的 base64

    说这么严谨总找不到杠点了吧?
    xy90321
        21
    xy90321  
       2019-10-09 23:51:00 +08:00 via iPhone
    vscode:我被帖主坑死了
    misaka19000
        22
    misaka19000  
       2019-10-09 23:51:29 +08:00
    应该是终端的 buffer 的原因
    hyserendipity
        23
    hyserendipity  
       2019-10-09 23:56:34 +08:00 via iPhone
    vscode 只用来阅读代码,ide 还是 jetbrains 好用
    zeyexe
        24
    zeyexe  
       2019-10-09 23:56:34 +08:00
    一般认为从终端复制的字符串不是可靠的数据。因为有一定可能出现少字符、多字符、不可见字符等问题。
    evam
        25
    evam  
       2019-10-10 09:57:36 +08:00
    jetbrains: 现在想起我的好了?
    ngc3242
        26
    ngc3242  
       2019-10-10 10:41:12 +08:00
    @k9982874 =在 base64 是做 padding 的,一般源字符串长度是 3 的倍数的时候不需要 padding,就没有=了
    ngc3242
        27
    ngc3242  
       2019-10-10 10:44:58 +08:00
    严谨一点应该说是源二进制串字节数是 3 的倍数
    doyok
        28
    doyok  
       2019-10-10 10:46:08 +08:00
    安利个,偶尔使用的话,可以在这个地址里转换,http://www.pjhome.net/web/html5/encodeDataUrl.htm
    MonoLogueChi
        29
    MonoLogueChi  
       2019-10-10 11:10:48 +08:00 via Android
    @k9982874 编码字节数不能被 3 整除的时候才需要补 0,=表示补 0 的字节数
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5099 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 09:35 · PVG 17:35 · LAX 02:35 · JFK 05:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.