我正在尝试扫描一个字符串,并且每次读取某个字符3次时,我都希望剪切剩余的字符串
例如: 字符串“ C:\ Temp \ Test \ Documents \ Test.doc”将变成“ C:\ Temp \ Test \”
每当字符串击中“ \” 3次时,都应修剪字符串
这是我正在处理的代码
(
SELECT
JCDS_SOGR.OBJNR, JCDS_SOGR.STAT, TJ02T.TXT30, DATEDIFF(DAY,MIN(JCDS_SOGR.UDATE),MAX(JCDS_SOGR.UDATE))
AS DIF
FROM JCDS_SOGR
JOIN TJ02T ON JCDS_SOGR.STAT = TJ02T.ISTAT
WHERE JCDS_SOGR.OBJNR = 'IE000000000010003791'
AND TJ02T.SPRAS = 'E'
GROUP BY JCDS_SOGR.OBJNR,JCDS_SOGR.STAT,TJ02T.TXT30)
UNION ALL
(
SELECT JCDS_SOGR.OBJNR, JCDS_SOGR.STAT, TJ30T.TXT30, DATEDIFF(DAY,MIN(JCDS_SOGR.UDATE),MAX(JCDS_SOGR.UDATE))
AS DIF
FROM JCDS_SOGR
JOIN TJ30T ON JCDS_SOGR.STAT = TJ30T.ESTAT
WHERE JCDS_SOGR.OBJNR = 'IE000000000010003791'
AND TJ30T.SPRAS = 'E'
AND TJ30T.MANDT='400'
AND TJ30T.STSMA = 'VEHICLE'
GROUP BY JCDS_SOGR.OBJNR,JCDS_SOGR.STAT,TJ30T.TXT30)
OBJNR STAT TXT30 DIF
1 3791 I1099 Available 0
2 3791 E0002 Awaiting Acceptance 110
3 3791 E0004 Operational 1473
4 3791 E0019 Operational Back-order 0
是带有文件路径的字符串。 “前缀”变量是我要存储修剪后的字符串的字符串数组。
请让我知道我需要解决的问题,或者是否有更简单的方法来执行此操作。
答案 0 :(得分:2)
执行split
,然后切片列表以获取必需项和join
:
s = 'C:\Temp\Test\Documents\Test.doc'
print('\\'.join(s.split('\\')[:3]) + '\\')
# C:\Temp\Test\
请注意,\
(反斜杠)是转义字符。要专门表示反斜杠,可以通过在反斜杠\\
之前添加反斜杠来使其强制为反斜杠,从而消除反斜杠的特殊含义。
答案 1 :(得分:1)
在python中,反斜杠字符用作转义字符。如果您执行\ n,则执行换行,\ t进行制表符。还有许多其他事情,例如\“允许您在字符串中加引号。如果要使用常规反斜杠,则应使用” \\“
答案 2 :(得分:0)
尝试
s = "C:\\Temp\\Test\\Documents\\Test.doc"
answer = '\\'.join(s.split('\\', 3)[:3])
答案 3 :(得分:0)
类似的事情会做..
x = "C:\Temp\Test\Documents\Test.doc"
print('\\'.join(x.split("\\")[:3])+"\\")