pythonpopen会报错_python2.7 os.popen()执行带中文命令报错问题
问题描述
使用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()执行带中文命令报错问题相关推荐
- CMD是什么?(命令行提示符)如何使用python在windows上操作CMD?(python执行命令行)os.syste[m](执行的命令)、os.popen(执行的命令)
文章目录 cmd是什么 python操作cmd 方法1: 方法2: 20200309 cmd是什么 cmd是command的缩写.即命令提示行(CMD),是在OS / 2 , Win为基础的操作系统( ...
- linux怎么卸载webpack,安装webpack后,执行webpack -v命令时报错:SyntaxError: Block-sc
安装webpack后,执行webpack -v命令时报错如下: [root@FreeServer ~]# webpack -v /usr/local/node-v4.4.7-linux-x64/lib ...
- HP-UX执行Oracle相关命令报错Memory fault(coredump)分析处理
HP-UX安装Oracle 11.2.0.3单机执行任何命令均报错Memory Fault(coredump)分析解决 1. 故障现象 顺利无报错安装Oracle软件之后,执行netca.dbca等任 ...
- 无法执行任何java命令,报错OutOfMemoryError: Cannot create GC thread. Out of system resources
生产程序功能不执行了,远程定位时发现无法使用jps,jstack甚至java -version命令,所有的java命令都无法执行,报错为无法创建线程. $jps -ml Error occurred ...
- 执行mount挂载命令 报错:mount: you must specify the filesystem type
mount/dev/sr0 /mnt/cdrom 想挂载镜像到/mnt/cdrom,来用做yum源,挂载报错如下 mount:you must specify the filesystemtype报错 ...
- Thinkphp3.2 分页带中文参数报错
使用thinkphp分页参数中有中文时,在点击下一页时出现乱码: 解决方法为修改thinkphp page类 show方法: thinkphp3.2.3对应位置为:ThinkPHP/Libary/Th ...
- 【解决】android设备有root权限,执行“adb disable-verity”命令报错“verity cannot be disabled/enabled - USER build”
这个错误提示意味着你的设备是使用USER版本的固件构建的,这个版本不允许禁用verity功能.但是,你可以尝试以下步骤来解决问题: 确认你的设备是否已经root,可以通过执行"adb roo ...
- Electron执行electron-builder打包命令报错
原文链接:https://blog.csdn.net/qq_32614411/article/details/93632068 问题: Error: C:\Users\Administrator\A ...
- kali在执行 apt-get update 命令时报错的解决方法
报错内容: root@kali:~# apt-get update Get:1 http://kali.mirror.garr.it/mirrors/kali kali-rolling InRelea ...
最新文章
- SQL Server数据库中所有表及字段信息
- javascript之回调函数小知识
- 结构体指针struct stu *p;和结构体变量struct stu p;结构体为什么要用指针引用而不用变量引用
- 教程Xcode 4下编译发布与提交App到AppStore
- Java基础学习总结(42)——Log4j 2使用教程
- 媒资管理系统的应用与发展
- c# asp.net mvc 开发的正方教务助手(二)
- Python中利用LSTM模型进行时间序列预测分析
- 盘点分库分表中,你一定要避开的那些坑!
- SQL查询字段约束名的语句
- 无setup.exe情况下安装mysql5.7.28(win10)
- c++ 按行读取txt文件并赋值_C 语言入门 19 读取txt文件中的数字,消除其中连续重复的数字...
- JavaScript运算符运算优先级
- 诺基亚PC套件在windows 2003安装的方法
- DC中保存ddc格式文件(亲测有效!)save the unmapped design in ddc format
- 用计算机怎么算加权标准差,Tableau,如何计算加权标准差
- kubeadm更改配置
- mplayer-2.3节:视频输出设备 .
- 2.6亿孤独灵魂能否听出一座喜马拉雅
- mysql 5.7的my.ini的位置在隐藏文件夹“ProgramData”下面
热门文章
- DFC-3C和DFC-3B的区别和注意事项
- 提高班兄弟姐妹一家人
- 渲染单色_均质单色ui设计有什么问题
- 我推荐阅读的微信公众号-IT类
- html怎么让视频背景固定不动,视频如何做到背景不动人物动的效果?背景动人物不动的视频...
- SQL 入门的必读好书
- Python镜像安装vim
- 8本书助你了解人民日报“创作大脑”
- Failed to build custom metric java.lang.NumberFormatException: For input string: “∞“
- 无法连接到服务器的错误解决方案