当python给我一个输出形式如下:
randomfilename.txt:randomstringmniaonovinaio
我怎样才能从中做出
randomfilename.txt
在python / shell中?
答案 0 :(得分:2)
>>> 'randomfilename.txt:randomstringmniaonovinaio'.split(':')[0]
'randomfilename.txt'
答案 1 :(得分:2)
>>> s = "randomfilename.txt:dslfkjsdosdfu"
>>> print s.split(":")[0]
randomfilename.txt
答案 2 :(得分:1)
在shell中,您可以使用cut
:
python yourscript.py | cut --delim=":" -f 1
仅打印第一个:
之前的字符串。如果您不想在没有:
的情况下获取这些行,如果您的程序中出现这样的行,您还可以在命令中添加-s
。
答案 3 :(得分:0)
如果您经常这样做,拆分方法效率很低,在这种情况下使用它可能更好:
>>> s='randomfilename.txt:randomstringmniaonovinaio'
>>> s[:s.find(':')]
'randomfilename.txt'
答案 4 :(得分:0)
其他用户已经给出了Python答案。无论出于何种原因,如果您想使用Unix实用程序,我认为您可以选择:
randomFileName=`echo $yourString | sed 's/^\(.*\.txt\):.*/\1/'`
这只是一种替代操作。
转义括号中的位只匹配以.txt结尾的任何字符集,并将其存储在缓冲区中。下一位匹配冒号和后面的任何文本。 ^
表示从$yourString
开始匹配。
\1
然后替换它与第一个模式缓冲区中的任何内容匹配的所有内容。在这种情况下,它应该是您的随机文件名。