Python社区  »  Python

在python中,在某些字符出现多次之后,如何修剪字符串?

Apmartin • 1 周前 • 23 次点击  

我正试图扫描一个字符串,每次它读取某个字符3次,我都想剪切剩余的字符串

例如: 字符串“c:\ temp\test\documents\test.doc”将变成“c:\ temp\test”

每次字符串点击“\”3次,都应该修剪字符串

这是我正在编写的代码

prefix = ["" for x in range(size)]
num = 0
...            
...            
            for char in os.path.realpath(src):
                for x in prefix:
                    x = char
                    if x =='\': # I get an error here
                        num = num + 1
                    if num == 3:
                        break
                    print (num)

            print(prefix)
...
...

这个 os.path.realpath(src) 是带有文件路径的字符串。“prefix”变量是要存储修剪过的字符串的字符串数组。

请告诉我需要修复什么,或者是否有更简单的方法来执行此操作。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46576
 
23 次点击  
分享到微博
文章 [ 4 ]  |  最新文章 1 周前
iScripters
Reply   •   1 楼
iScripters    9 月前

像这样的事就行了。

x = "C:\Temp\Test\Documents\Test.doc"
print('\\'.join(x.split("\\")[:3])+"\\")
AbtPst
Reply   •   2 楼
AbtPst    9 月前

尝试

s = "C:\\Temp\\Test\\Documents\\Test.doc"
answer = '\\'.join(s.split('\\', 3)[:3])
Hippolippo
Reply   •   3 楼
Hippolippo    9 月前

在python中,反斜杠字符用作转义字符。如果您这样做,它将执行换行操作,即执行制表符操作。还有很多其他的事情,比如“让你在一个字符串中做一个引号”。如果你想要一个普通的反斜杠,你应该做“\\”

Austin
Reply   •   4 楼
Austin    9 月前

split 然后切片列表以获取所需的 join 以下内容:

s = 'C:\Temp\Test\Documents\Test.doc'

print('\\'.join(s.split('\\')[:3]) + '\\')
# C:\Temp\Test\

请注意 \ (反斜杠)是转义字符。要明确表示反斜杠,请通过在反斜杠之前添加反斜杠来将其强制为反斜杠 \\ ,从而删除反斜杠的特殊含义。