python调用程序路径中包空格,及包含特殊字符问题
2024-08-30 13:35:56
解决办法
import os
s = r'"C:\Program Files\Google\Chrome\Application\chrome.exe"'
print(s)
os.system(s)
也就是在调用的路径中如果包含空格,需要将调用的路径用"
引起来
扩展知识
1.windows平台这里只能用 双引号
,cmd
不能识别单引号
包含的路径 ,linux即可以用双引号
也可以用单引号
,但只要有路径中包含空格就需要用双引号包裹住
2.为什么前面的程序去掉 r
也能运行?
首先要明白 r
表示什么意思,r
在python字符串中表示原始字符,也就是你字符串中写的是什么就是什么,不经过转义,例如
print(r"\\\\")
print("\\\\")
print("\"")
print(r"\"")
输出:
\\\\
\\
"
\"
第一种因为用r表示原始字符串所以,所以都不转义
第二中转义两个 \\
第三种可能大部分人不知道还有这种写法(或者不常用),一般如果要输出 "
就用 '
包裹起来就行了,但是其实是可以转义输出出来的
第四种同理
转义的作用其实主要是为了 与python内置的语法与 你声明的字符串中包含的字符区分开来
回归问题,为什么去掉r
也能运行,原因就很明显了,因为 路径中没有与python 内置语法相同的字符,例如如果路径中包含双引号,或者路径首字母为 u (\u Unicode与中文互转 )等等,这类路径就必须加 r
,所以前面加上r
是最保险的
其实导致问题怎么复杂的主要原因在于
在windows上的路径分割很奇葩与转义字符的语法一样为\
,在linux上路径分割是/
, 所以linux 几乎没有调用路径的问题,另外很多编程语言转义字符都是\
,或许这也是为什么编程习惯于用linux 原因吧
最新文章
- C++各种进制的转换
- ajax浅析---UpdatePanel
- Android百度地图开发(一)之初体验
- [.NET] 打造防“狼”神器 :任务栏篇
- [MEAN+ Webstrom] First API -- 2.Debug Node.js RESTful application
- 从头开始编写一个Orchard网上商店模块(3) - 创建Orchard.Webshop模块项目
- the identity used to sign the executable is no longer valid.解决方法
- vb.net常用函数
- jQuery上传插件Uploadify 3.2在.NET下的详细例子
- 页面刷新vuex数据消失问题解决方案
- OS X第三方类库管理工具cocoapods入门
- ftp服务配置
- mac查看当前调用tcp的进程并关闭指定进程
- xbee无线通讯终端
- DataFrame修改列名
- Logstash 基础入门
- python学习day4 数据类型 if语句
- SD从零开始33-37
- Mysql:MyIsam和InnoDB的区别
- 【转】(七)unity4.6Ugui中文教程文档-------概要-UGUI Auto Layout
热门文章
- Django 之视图层
- 【项目实战】kaggle产品分类挑战
- Solutions:Elastic SIEM - 适用于家庭和企业的安全防护 ( 一)
- 修改 Docker容器 自动启动/不自动启动,挂载路径,存储位置
- WMS 相比于 ERP 系统有哪些优势?
- Docker Private Registry
- capability参数配置
- Java中的名称命名规范
- Java模拟生产者-消费者问题。生产者不断的往仓库中存放产品,消费者从仓库中消费产品。其中生产者和消费者都可以有若干个。在这里,生产者是一个线程,消费者是一个线程。仓库容量有限,只有库满时生产者不能存
- springboot+thymeleaf+bootstrap 超级无敌简洁的页面展示 商城管理页面