繁体   English   中英

python字符串中如何引用“\”符号

[英]How to refer to "\" sign in python string

我在引用字符串中的特殊符号时遇到问题:

我有: path='C:\dir\dir1\dir2\filename.doc'

我想要filename

当我尝试时: filename=path[path.rfind("\"):-4]

然后解释器说这是一个错误行,因为它被视为注释。

您可以使用"\\\\" ,从技术上讲,如果您坚持使用反斜杠,最好使用os.path.sep 但更好的是,在路径中使用/ ,在Windows上可以正常使用

Python具有内置函数来操纵路径 请注意,如果您仍希望反斜杠比正斜杠还要加倍,则需要加倍

>>> import os
>>> path='C:\\dir\\dir1\\dir2\\filename.doc'
>>> os.path.splitext(os.path.basename(path))
('filename', '.doc')

并使用正斜杠

>>> path='C:/dir/dir1/dir2/filename.doc'
>>> os.path.splitext(os.path.basename(path))
('filename', '.doc')

可以将其转义为“ \\\\”或使用原始字符串,例如:r“ \\”。

逃脱它:

filename=path[path.rfind("\\"):-4]

或更好的是,使用basename -Python的os.path库的一部分:

from os.path import basename
basename(path)

从手册中获取basename

返回路径名path的基本名称。 这是split(path)返回的对的后半部分。 请注意,此函数的结果与Unix basename程序不同。 '/foo/bar/'basename()返回'bar'basename()函数返回一个空字符串( '' )。

您可以输入双倍的“:”。

但是,要将文件名从Windows文件名中分离出来,请使用os.path.split作为/的分区:

>>> path=r'C:\dir\dir1\dir2\filename.doc'
>>> print path.rpartition('\\')[-1]
filename.doc

常见问题解答中对此有一些说明: 原始字符串(r-strings)为什么不能以反斜杠结尾?

如果要构建Windows路径名,请注意,所有Windows系统调用也都接受正斜杠:

 f = open("/mydir/file.txt") # works fine! 

如果您要为DOS命令构建路径名,请尝试以下一种方法

 dir = r"\\this\\is\\my\\dos\\dir" "\\\\" dir = r"\\this\\is\\my\\dos\\dir\\ "[:-1] dir = "\\\\this\\\\is\\\\my\\\\dos\\\\dir" 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM