當蟒蛇給了我一個輸出狀:刪除一切從背後輸出「:」
randomfilename.txt:randomstringmniaonovinaio
我怎樣才能讓從它只是在Python /殼
randomfilename.txt
?
當蟒蛇給了我一個輸出狀:刪除一切從背後輸出「:」
randomfilename.txt:randomstringmniaonovinaio
我怎樣才能讓從它只是在Python /殼
randomfilename.txt
?
>>> s = "randomfilename.txt:dslfkjsdosdfu"
>>> print s.split(":")[0]
randomfilename.txt
>>> 'randomfilename.txt:randomstringmniaonovinaio'.split(':')[0]
'randomfilename.txt'
在外殼裏,你可以使用cut
:
python yourscript.py | cut --delim=":" -f 1
只有字符串前第一:
將被打印出來。如果您不想在沒有:
的情況下獲取這些行,如果程序中出現此類行,則還可以將-s
添加到該命令中。
>>> s='randomfilename.txt:randomstringmniaonovinaio'
>>> s[:s.find(':')]
'randomfilename.txt'
分裂法是低效的。如果出於某種原因,你想與Unix工具來做到這一點,我想你可以只是去:
randomFileName=`echo $yourString | sed 's/^\(.*\.txt\):.*/\1/'`
這只是一個sed操作。
轉義括號中的位只是匹配以.txt結尾並將其存儲在緩衝區中的任何一組字符。下一位與冒號及其後的任何文字匹配。 ^
意味着從$yourString
開始匹配。
\1
然後替換它與任何在第一個模式緩衝區中匹配的所有東西。在這種情況下,它應該是你的隨機文件名。
的其他用戶都給予了Python的答案:如果你經常這樣做,在這種情況下,它可能會更好地使用