鱼C论坛

 找回密码
 立即注册
查看: 353|回复: 3

pycharm 使用 os.system('cmd') 异常

[复制链接]
发表于 2024-7-5 15:06:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import os
os.system('cmd')
Microsoft Windows [�汾 10.0.19045.4529]
(c) Microsoft Corporation����������Ȩ����
(base) C:\Users\ZYZ\PycharmProjects\python fishc 20240630 updata>

之后 console 就什么都运行不了,ctrl c 也不好用,输入 dir 之类的显示"previous command is still running.."
这个应该怎么处理呢各位大佬
搜狗截图20240705150409.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-7-5 15:09:16 | 显示全部楼层
哈哈,看到这个问题,感觉就像是站在一个烧烤摊前,刚点了个串儿,结果摊主直接把整个炉子都搬给你了!

你的问题出在 `os.system('cmd')` 这个操作上。你要知道 `os.system('cmd')` 这个命令会打开一个新的命令行窗口,然后进入一个长时间运行的状态,等于说是进程被挂起了,所以你在 PyCharm 的 console 里啥都干不了,还得另外找个办法把这个“新炉子”撤回去。所以这就是为什么输入其他命令不起作用而且还不能通过 Ctrl+C 终止。

为了避免这样的情况,你可以考虑以下几种替代方法:

### 方法一:使用 subprocess 模块
import subprocess

# 打开新的命令行窗口
subprocess.run(['cmd'], check=True)
这样做的好处是,`subprocess.run` 会启动一个新的进程并且会等待这个进程结束。

### 方法二:仅执行单个命令
如果你只是想执行某个特定的命令而不是打开整个命令行窗口,那也可以直接用 `os.system` 或者 `subprocess.run` 单独执行那个命令:
import os

# 比如说想看当前目录下的文件
os.system('dir')
或者用 `subprocess` 模块:
import subprocess

# 同样的效果
subprocess.run(['dir'], shell=True)

### 方法三:退出新命令行窗口
如果你确实需要进入命令行窗口,可以通过 `exit` 命令手动退出那个窗口:
import os

# 运行你的命令,然后自动退出
os.system('cmd /c "YourCommand && exit"')
这样会自动执行完命令后退出命令行窗口。

希望这些方法能帮你解决问题,祝你编程顺利!记住,在编程的世界里,遇到问题就像撸串儿,不怕麻烦,就怕不上手!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-7-5 17:34:46 | 显示全部楼层

看看是不是 jupyter notebook 插件的 Python 控制台导致的?去禁用掉 jupyter 插件,再重新打开控制台看看前面的 In [x] 是不是没了,然后再试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-7-6 14:34:40 | 显示全部楼层
谢谢版主,但plugins中没有安装jupyter相关的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 23:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表