python中的os.popen函数执行cmd命令带中文时命令执行失败怎么解决

1、在用python执行sqlmap批量扫描时,文件名带中文,os.popen命令执行失败。

    def Cmd_Sqlmap(self,path,b="疑似存在注入汇总.txt"):
        filename = os.path.join(path,b)
        os.chdir("E:\Python27\sqlmap")
        cmd="python sqlmap.py -m "+filename+' --random-agent --level=3 --threads="3" --batch --users --tables'
        print(cmd)
        p = os.popen(cmd.encode('gb2312').decode('gb2312'))
        print(p.read())

我在filename里有中文 ,代码应该没写错吧,命令执行失败了 ,求指教

0

1个回答

gb2312改成GB18030试试

0
qq_22018481
竹楼雨 多谢啦 ,貌似是pycharm的编码设置的问题,设置成gbk之后这个sqlmap命令就可以跑起来了
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python执行cmd命令中包含中文时命令执行失败的解决办法
问题根因: 操作系统是Windows,IDE是默认UTF-8编码的。 现在想通过cmd打开具有中文路径的文件,用os.system(command)打不开,返回的错误是乱码看不懂。 cmd的默认编码是cp936,也就是gb2312,我尝试改为utf-8。 解决办法: 前提要pychram的文件编码要设置成gbk,亲测有用,设置成utf-8就执行失败。 将你的命令也就是字符串编码成gb231...
BCB中怎么执行CMD命令?函数?
一、弱弱的问一下。用这个函数吗?rnWinExec(" ",SW_HIDE);rnrnrn但是如果第一个参数中有双引号怎么办?比如:rnnetsh interface ip set address name="本地连接" source=static addr=192.168.0.254 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=0rn本地连接有双引号了,再加到WinExec中的第一个参数去会报错,用单引号又不能实现功能。rnrnrn二、BCB怎么获取DOS命令下的结果,比如测试与路由是否连通,我用PING 192.168.0.1 即使它是正常的,我怎么获取DOS下PING命令返回的数据?rnrnrn大家帮忙看看。
python执行cmd命令
cmd命令的时间比较长,如何等待cmd执行完毕呢?rn或者cmd的输出可以实时获取吗?有没有这种方法rn用线程的方法好不好?但是线程如何将数据传递给调用类呢
python下执行cmd命令
使用os import os result = os.popen("ipconfig") print (result.read()) 这种方式有返回值,因而使用起来较为方便  
python 执行CMD命令
'''方法一''' import os s = os.popen('ping baidu.com').read() print(s) '''方法二''' import subprocess s=subprocess.Popen('ping baidu.com', shell=True, stdout=subproces...
python 执行cmd命令
def jump(distance): press_time = distance * 1.35 press_time = int(press_time) cmd = 'adb shell input swipe 320 410 320 410 ' + str(press_time) print(cmd) os.system(cmd)
C# 执行指定命令和执行cmd命令
/// <summary> /// 执行内部命令(cmd.exe 中的命令) /// </summary> /// <param name="cmdline">命令行</param> /// <returns>执行结果</returns> public static string ExecuteInCmd(string c
怎么执行cmd命令的
在delphi调用cmd命令
C#执行DOS命令(CMD命令)
 在c#程序中,有时会用到调用cmd命令完成一些功能,于是在网上查到了如下方法,实现了 c#执行DOS命令,并返回结果。         //dosCommand Dos命令语句         public string Execute(string dosCommand)         {             return Execute(dosCommand, 10);  ...
java中执行cmd命令
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; /**  * 执行命令行命令的工具类,用于执行python程序  * @author ChenRui  *  */ public c
CMD命令执行
CMD 命令执行,获得返回信息,源代码
python执行Linux命令,连续执行多条Linux命令 ,os.system和os.popen
个人笔记:  python 文件单独执行文件 注意要在终端中执行命令:python test.py os.system(cmd)  返回值为0:代表成功;1:代表失败 os.popen(cmd) 将执行结果返回,但是测试表示并没有,具体原因后期记得更新 连续执行多条命令 os.popen("cd.. && cd demo && touch 2.py ")...
执行cmd命令
说明: 主要代码是从 http://tieba.baidu.com/p/3214053453 抄录的 Demo下载:执行cmd命令主要思路 { 建立两条管道,一条负责从程序(进程)往新建立的cmd进程传信息,另一条则反过来,从cmd进程传信息给程序 程序通过 WriteIn 写入,cmd进程 从 ReadIn 读到程序写入的信息 cmd进程 的返回值或错
第一个Python程序——执行cmd命令
最近总是用到一些相同或相似的cmd代码,每次都手打太麻烦。 正好想学门脚本语言,于是尝试用Python脚本执行cmd命令(直接bat行不行啊!这个折腾啊!) import os #cmd命令 cmd_commend1 = r'' cmd_commend2 = r'' while True:     #input接受的是字符串,可以int(input(''))强制转换     c
java Thread怎么执行cmd命令
进程可以像下面那样执行cmd命令:rnProcess proc = Runtime.getRuntime().exec("cmd /c 执行的路径")rn用Thread可以吗?如果可以,执行语句是怎么写的。rn请各位大哥大姐帮帮小弟...
怎么判断cmd命令执行完毕
winform窗体中,有两个button按钮,click事件中一个A按钮负责调用cmd命令(已调用成功),另一个B按钮负责判断cmd命令执行完毕.rnrn请问B按钮如何判断,谢谢.
powershell下MVN install命令执行失败的解决
目标命令:mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.2.0 -Dpackaging=jar -Dfile=F:\SVNCheckOut\*******\ojdbc6.jar 正常来说在maven安装路径下的bin目录执行肯定没问题,但是报了如下错误: [ERROR] Th...
解决rabbitmqctl命令执行失败的问题
操作系统:win10Erlang版本:20.3RabbitMQ版本:rabbitmq-server-3.7.4.exe-----------------------------------------------------------执行rabbitmqctl status总是不能成功,出现以下提示信息:Status of node rabbit@xxx ...Error: unable to ...
怎么执行带有转义字符的cmd命令
del /f /s /q %systemdrive%\*.tmprndel /f /s /q %systemdrive%\*._mprndel /f /s /q %systemdrive%\*.logrndel /f /s /q %systemdrive%\*.gidrndel /f /s /q %systemdrive%\*.chkrndel /f /s /q %systemdrive%\*.oldrndel /f /s /q %systemdrive%\recycled\*.*rndel /f /s /q %windir%\*.bakrnrd /s /q %windir%\temp & md %windir%\temprndel /f /q %userprofile%\cookies\*.*rndel /f /q %userprofile%\recent\*.*rndel /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"rndel /f /s /q "%userprofile%\Local Settings\Temp\*.*"rndel /f /s /q "%userprofile%\recent\*.*"rn这个该怎么执行rnprocess = new Process();rn process.StartInfo.FileName = "cmd.exe";rn process.StartInfo.Arguments = "/k title cmd";rn process.StartInfo.UseShellExecute = false;rn process.StartInfo.RedirectStandardInput = true;rn process.StartInfo.RedirectStandardOutput = true;rn process.StartInfo.CreateNoWindow = true;rn process.Start();rn string a="";rn process.StandardInput.WriteLine(a);//cmd命令rn想让a的值就是上面那些命令
Ganymed_SSH2执行执行nohup命令失败
Ganymed_SSH2执行执行nohup命令失败 1 背景    问题:“” 因为最近一个SQL同事离职,导致有一堆哔了狗的杂事儿全交接到我的手中。这些事儿比较简单却比较麻烦,比如每天都需要写几个shell命令去检查linux机上定时cron生成的数据是否: 假如当前Cron生成的文件有问题,就需要人工干预执行。如果人为不干预,会导致失败当天之后每天定时cron都会失败(理解成串行,一个失之后的...
python里的os.popen怎么打不开带中文的文件?
文件名是全英文的就可以打开,里面只要带有中文就打不开,请问是怎么回事?rn谢谢!!
wsaioctl()函数执行失败
我在执行wsaioctl()函数的时候老是返回失败,rn在调用wsaioctl()的时候是不是需要什么特定条件呢,请大家指点了。我是在Windows XP Sp2番茄花园版下rn而且我运行MiniSniffer执行“start”命令时也弹出“wsaioctl func error!”而不能开始抓包。rnrn#include "stdafx.h"rn#include rn#include rnrn#pragma comment(lib,"ws2_32.lib")rnrn#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)rn#define SIO_RCVALL_MCAST _WSAIOW(IOC_VENDOR,2)rn#define SIO_RCVALL_IGMPMCAST _WSAIOW(IOC_VENDOR,3)rn#define SIO_KEEPALIVE_VALS _WSAIOW(IOC_VENDOR,4)rn#define SIO_ABSORB_RTRALERT _WSAIOW(IOC_VENDOR,5)rn#define SIO_UCAST_IF _WSAIOW(IOC_VENDOR,6)rn#define SIO_LIMIT_BROADCASTS _WSAIOW(IOC_VENDOR,7)rn#define SIO_INDEX_BIND _WSAIOW(IOC_VENDOR,8)rn#define SIO_INDEX_MCASTIF _WSAIOW(IOC_VENDOR,9)rn#define SIO_INDEX_ADD_MCAST _WSAIOW(IOC_VENDOR,10)rn#define SIO_INDEX_DEL_MCAST _WSAIOW(IOC_VENDOR,11)rnrnint _tmain(int argc, _TCHAR* argv[])rnrn WSADATA wsaData;rn SOCKET socksniffer;rn SOCKADDR_IN sinmine;rn int addrlen;rn char buffer[65535];rn int i_temp;rn SOCKADDR_IN from;rn int tmp;rn tmp=sizeof(from);rn if(WSAStartup(MAKEWORD(2,1),&wsaData)==SOCKET_ERROR)rn rn fprintf(stderr,"wsastartup if failed: %d\n",WSAGetLastError()); exit(0);rn rn if((socksniffer=WSASocket(AF_INET,SOCK_RAW,IPPROTO_IP,NULL,0,WSA_FLAG_OVERLAPPED))==INVALID_SOCKET)rn rn printf("WSASocket int sniffer Error: %d\n",WSAGetLastError());rn exit(0);rn rn sinmine.sin_addr.s_addr=inet_addr("127.0.0.1");//这是我的主机在局域网中的地址rn sinmine.sin_family=AF_INET;rn sinmine.sin_port=htons(11282); rn addrlen=sizeof(sinmine);rn if(bind(socksniffer,(struct sockaddr *)&sinmine,addrlen)==SOCKET_ERROR)rn rn printf("Bind in sniffer Error: %d\n",WSAGetLastError());rn exit(0);rn rn DWORD dwBufferLen[10] ;rn DWORD dwBufferInLen = 1 ;rn DWORD dwBytesReturned = 0 ;rn if(WSAIoctl(socksniffer, SIO_RCVALL,&dwBufferInLen, sizeof(dwBufferInLen),&dwBufferLen, sizeof(dwBufferLen),&dwBytesReturned , NULL , NULL )==SOCKET_ERROR)rn rn printf("can not set promiscous: %d\n",WSAGetLastError());rn exit(0);rn rn while(1)rn rn int i_temp = recvfrom(socksniffer,(char FAR *) &buffer,sizeof(buffer),MSG_PEEK, (struct sockaddr *) &from, &tmp);rn if(i_temp==SOCKET_ERROR)rn rn fprintf(stderr,"revfrom() failed: %d\n",WSAGetLastError()); rn exit(0);rn rn rn WSACleanup();rnrn return 0;rn
CurrentUser()函数执行失败
rn如题:rn我想用CurrentUser()函数得到ACCESS数据库当前的用户名,rnrn但是有一个奇怪的想象:rn就是:我在我自己的电脑上执行SQL语句:select CurrentUser();是成功的,可以得到当前的用户名。rn但是在公司的电脑上,执行同样的语句就不能执行。rn装的ACCESS都是2003,只有一个地方不同:rn那就是:我的电脑上的ACCESS版本是:access 2003(11.561.5606)rn而公司电脑上ACCESS的版本好像是811X(最后四位),记不清了,现在没在公司。反正是比5606高。rnrn我不知道是不是这个原因?rnrn请各位高手,详细解释一下。rn不胜感激。rnrn
InternetConnect函数执行失败
InternetConnect函数执行失败,用GetLastError函数获取的错误码是12163,含义是ERROR_INTERNET_DISCONNECTED,但是目的电脑能ping通,哪位大侠知道是什么情况导致InternetConnect函数执行失败返回12163的错误码?
RegSetValueEx函数执行失败
小弟是半路出家的三脚猫,VC算是一知半解吧,想自己做一个电脑锁屏的小软件,实现定时锁屏的功能。rnrn昨天为实现屏蔽任务管理器的功能,找到了这篇文章 http://www.vckbase.com/document/viewdoc/?id=424,作者是用写注册表实现的, 我把源码载了下来, 自己新建了一个2008的MFC 对话框工程,把源码里的TaskKeyHook.h、TaskKeyMgr.cpp、TaskKeyMgr.h、TaskKeyHook.dll、TaskKeyHook.lib 加到自己的工程里面来,调试之后能用,可以实现写注册表,禁用任务管理器。rnrn但是当我按同样的套路把源码里的文件加入到我的锁屏软件的工程里,调用结果却失败了,检查了一下发现问题出在RegSetValueEx()执行失败,返回结果不是ERROR_SUCCESS。但至于为什么失败我就郁郁不得其解了,在前面建立的测试工程里完全可以执行的RegSetValueEx(),为何在锁屏软件的工程就执行失败呢?望有高人解惑,不盛感激!rnrnvoid CScreenLockDlg::OnBnClickedRadio2()//Disable TaskMgrrnrn// TODO: 在此添加控件通知处理程序代码rn HKEY hk;rn if( ::RegOpenKeyEx(HKCU, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"), 0, KEY_READ|KEY_WRITE, &hk) )rn ::RegCreateKeyA(HKCU, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", &hk);rnrn DWORD val=1;rn if( ERROR_SUCCESS == RegSetValueEx(hk, _T("DisableTaskMgr"), NULL,REG_SZ, (BYTE*)&val, sizeof(val)) ) //为什么RegSetValueEx失败呢?rn rn MessageBox(_T("RegSet Success"));rn rn elsern rn CString str;rn str.Format(_T("%lu"), ERROR_SUCCESS);rn MessageBox(str);rn rnrnrnrn我把完整的工程传到网盘里了,地址是http://www.rayfile.com/zh-cn/files/9f274b91-1fc2-11e1-8654-0015c55db73d/
vc++ WMI远程执行cmd命令失败??
背景:rn假设有3台计算机rnIP:rn1.1.1.1rn1.1.1.2rn1.1.1.3rnrn1.1.1.1是服务器,运行我自己编写的一个程序,它通过wmi连接到1.1.1.2这台机器,并在上面执行两个命令:rncmd.exe /c net use \\1.1.1.3\c$\文件夹 password /user:username //共享文件夹rncmd.exe /c copy \\1.1.1.3\c$文件夹\a.txt c:\ //拷贝a.txt到C盘rnrn问题:命令执行失败,执行net use失败,没有任何提示,copy提示拒绝访问。rn是不是需要配置系统的权限或安全策略等其他东西呢?怎样执行才能保证两个命令执行成功?
API中如何执行cmd命令?
我是生dll文件,用于ASP网页里
C#程序中CMD命令的执行
在C#的各种编程中,往往涉及到部分CMD命令的操作,尤其是对于部分程序的启动与停止操作。 因此,对于常用的CMD操作相关的类,需要熟悉,现总结如下: 1,CMD操作时需要先启动CMD程序,即通过启动程序类Process来实现。 2,可以通过设置启动程序类的StartInfo的相关属性来控制是否出现CMD界面,以及命令执行方式等。 3,通过CMD执行命令,即是通过CMD程序的写入命令,将命令...
Java执行cmd命令传递带空格的参数
项目中碰到在linux系统中执行cmd命令,由于参数中带有空格,导致命令不能正确执行。一开始以为是'<'和‘“’需要转义,但是转义过后依然不能正确执行,后来发现发生命令执行错误的原因是因为参数中自带空格,导致命令的参数个数不能正确识别,所以尝试用String数组的形式传递参数,问题就解决了,而且不需要进行转义。在此记录一下。 import org.slf4j.Logger; import...
python 执行命令行命令
初步了解的可能的方式为: subprocess.call(command) os.system(command) subprocess.Popen code example:1. osimport os os.system('ls')2. subprocessimport subprocess as sub sub.call('ls')  sub=subprocess.Popen(cmd,shell
php 执行的系统命令带中文时乱码
首先查看系统对中文的支持 locale -a | grep zh_CN zh_CN zh_CN.gb18030 zh_CN.gb2312 zh_CN.gbk zh_CN.utf8 vi ~/.bash_profile 文件末尾添加: export LANG="zh_CN.UTF-8" export LC_ALL="zh_CN.UTF...
使用CMD命令编译执行java命令
       写程序时,有时候需要动态编译执行,经过各种百度及实战,总结一些使用经验。.java文件分为有包名,无包名,又分为有jar包,无jar包,是否指定jre等等。接下来总结如下:cmd 编译执行java命令场景:jre目录:c:/java/jre无包名的java文件1:c:/project/src/test1.java无包名的java文件2:c:/project/src/test2.jav...
wmi4j 远程执行cmd命令获取命令执行的结果
该代码实现了在远程windows主机上 获取进程列表 及进程对应的端口;使用wmi4j 连接远程主机获取进程列表,创建文件夹、共享文件夹、执行netstat -ano输出到aa.txt文件,读取文件、撤销文件夹共享、删除文件夹及aa.txt文件;即实现远程执行cmd命令获取命令执行的结果的效果。
vbs执行CMD命令and导出命令结果
vbs执行CMD命令and导出命令结果 ==========================
怎么执行linux执行带管道符的命令?
Runtime.getRuntime().exec("ls |wc -l");rn这个执行不了,只会执行管道符前面的部分,怎么才能解决呢?
gsoap的wsdl2h 命令执行失败
执行命令如下:rn$ wsdl2h.exe -o edDateService.h http://211.136.202.19:8080/ElectronDiscountDataInterface/edDataService.ws?wsdlrnrn这个后面的URL是局域网的一个web服务。在IE浏览器是可以打开查看这个wsdl的。rnrn命令执行后有如下错误:rnConnecting to 'http://211.136.202.19:8080/ElectronDiscountDataInterface/edDataService.ws?wsdl' to retrieve WSDL/XSD...rnConnection failedrnSOAP 1.1 fault: SOAP-ENV:Client [no subcode]rn"Connection timed out"rnDetail: connect failed in tcp_connect()rnrn同样的命令,连接天气预报服务就没有问题:wsdl2h.exe -o weather.h http://www.ayandy.com/Service.asmx?WSDL 就是成功的。rnrn请懂gsoap的指点下,为什么会connection failed
Linux 执行sudo命令失败
一、报错信息 sudo: /etc/sudo.conf is world writable sudo: /etc/sudo.conf is world writable sudo: /etc/sudoers is world writable sudo: no valid sudoers sources found, quitting sudo: unable to initialize po...
执行DOS命令时,怎么等到一条命令执行完才执行下一条命令
我在VC中要执行一个BAT文件,里面是DOS命令,文件内容为:pscli -w(执行这句大概需要10秒)rnrn pscli -m PSKEY.psr(执行这句大概需要5秒)。但是在VC中调用时,不管用ShellExecute、WinExec,还是CreateProcess。都不能等待Dos命令执行完后,再执行后面的语句。有什么方法可以等待Dos命令执行完后,才执行后面的语句?
用c#执行cmd命令
用c#执行cmd命令用c#执行cmd命令用c#执行cmd命令用c#执行cmd命令
批处理执行CMD命令
批处理CMD命令的简单事例,可供新手学习专用,懂批处理操作的程序员那都是so easy