问题描述

使用python2.7执行os.popen()打开系统带中文参数命令的时候报了参数不合法,但是把命令打印出来复制到cmd里面是可以执行的。而且把中文换成英文也不会报错。

仿照问题做了个例子复现如下:

先创建几个文件:

image.png

然后写一段代码进行复制操作:

# -*- coding: utf-8 -*-

import os

cmd = 'copy ' + ' 测试 '+' /a test' #系统找不到指定文件

# cmd = 'copy ' + ' adf '+' /a test' #正常拷贝

print cmd

finishInfo = os.popen(cmd).read().decode('gbk')

print finishInfo

解决办法

1.换python3执行(有条件的话)

2.将文件首行的编码格式改成gbk

3.使用decode

finishInfo = os.popen(cmd.decode('utf-8').encode('gbk')).read().decode('gbk')

先转成unicode,再转成gbk。

先使用u前缀将命令声明为unicode再encode成gbk。

原因探究

这里涉及到三个地方的编码,python脚本,运行环境也就是pycharm,cmd。

pythonpopen会报错_python2.7 os.popen()执行带中文命令报错问题相关推荐

  1. CMD是什么?(命令行提示符)如何使用python在windows上操作CMD?(python执行命令行)os.syste[m](执行的命令)、os.popen(执行的命令)

    文章目录 cmd是什么 python操作cmd 方法1: 方法2: 20200309 cmd是什么 cmd是command的缩写.即命令提示行(CMD),是在OS / 2 , Win为基础的操作系统( ...

  2. linux怎么卸载webpack,安装webpack后,执行webpack -v命令时报错:SyntaxError: Block-sc

    安装webpack后,执行webpack -v命令时报错如下: [root@FreeServer ~]# webpack -v /usr/local/node-v4.4.7-linux-x64/lib ...

  3. HP-UX执行Oracle相关命令报错Memory fault(coredump)分析处理

    HP-UX安装Oracle 11.2.0.3单机执行任何命令均报错Memory Fault(coredump)分析解决 1. 故障现象 顺利无报错安装Oracle软件之后,执行netca.dbca等任 ...

  4. 无法执行任何java命令,报错OutOfMemoryError: Cannot create GC thread. Out of system resources

    生产程序功能不执行了,远程定位时发现无法使用jps,jstack甚至java -version命令,所有的java命令都无法执行,报错为无法创建线程. $jps -ml Error occurred ...

  5. 执行mount挂载命令 报错:mount: you must specify the filesystem type

    mount/dev/sr0 /mnt/cdrom 想挂载镜像到/mnt/cdrom,来用做yum源,挂载报错如下 mount:you must specify the filesystemtype报错 ...

  6. Thinkphp3.2 分页带中文参数报错

    使用thinkphp分页参数中有中文时,在点击下一页时出现乱码: 解决方法为修改thinkphp page类 show方法: thinkphp3.2.3对应位置为:ThinkPHP/Libary/Th ...

  7. 【解决】android设备有root权限,执行“adb disable-verity”命令报错“verity cannot be disabled/enabled - USER build”

    这个错误提示意味着你的设备是使用USER版本的固件构建的,这个版本不允许禁用verity功能.但是,你可以尝试以下步骤来解决问题: 确认你的设备是否已经root,可以通过执行"adb roo ...

  8. Electron执行electron-builder打包命令报错

    原文链接:https://blog.csdn.net/qq_32614411/article/details/93632068 问题:  Error: C:\Users\Administrator\A ...

  9. kali在执行 apt-get update 命令时报错的解决方法

    报错内容: root@kali:~# apt-get update Get:1 http://kali.mirror.garr.it/mirrors/kali kali-rolling InRelea ...

最新文章

  1. SQL Server数据库中所有表及字段信息
  2. javascript之回调函数小知识
  3. 结构体指针struct stu *p;和结构体变量struct stu p;结构体为什么要用指针引用而不用变量引用
  4. 教程Xcode 4下编译发布与提交App到AppStore
  5. Java基础学习总结(42)——Log4j 2使用教程
  6. 媒资管理系统的应用与发展
  7. c# asp.net mvc 开发的正方教务助手(二)
  8. Python中利用LSTM模型进行时间序列预测分析
  9. 盘点分库分表中,你一定要避开的那些坑!
  10. SQL查询字段约束名的语句
  11. 无setup.exe情况下安装mysql5.7.28(win10)
  12. c++ 按行读取txt文件并赋值_C 语言入门 19 读取txt文件中的数字,消除其中连续重复的数字...
  13. JavaScript运算符运算优先级
  14. 诺基亚PC套件在windows 2003安装的方法
  15. DC中保存ddc格式文件(亲测有效!)save the unmapped design in ddc format
  16. 用计算机怎么算加权标准差,Tableau,如何计算加权标准差
  17. kubeadm更改配置
  18. mplayer-2.3节:视频输出设备 .
  19. 2.6亿孤独灵魂能否听出一座喜马拉雅
  20. mysql 5.7的my.ini的位置在隐藏文件夹“ProgramData”下面

热门文章

  1. DFC-3C和DFC-3B的区别和注意事项
  2. 提高班兄弟姐妹一家人
  3. 渲染单色_均质单色ui设计有什么问题
  4. 我推荐阅读的微信公众号-IT类
  5. html怎么让视频背景固定不动,视频如何做到背景不动人物动的效果?背景动人物不动的视频...
  6. SQL 入门的必读好书
  7. Python镜像安装vim
  8. 8本书助你了解人民日报“创作大脑”
  9. Failed to build custom metric java.lang.NumberFormatException: For input string: “∞“
  10. 无法连接到服务器的错误解决方案