python中的strncmp

2024-05-19 15:40:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在解析一个包含路径列表的文件。我想看看一个路径是否在一个特定的目录下。所以我有两个字符串:S1 = '/tmp/'S2 = '/tmp/file.txt'

如果我想检查S2是否包含S1加上一些额外的字节,在C中,我将执行strncmpS1S2strlen(S1)字节。在Python中有这样做的方法吗?我是Python新手,还不知道所有可用的模块。我可以通过遍历字符串中的字符并进行比较来实现这一点,但是我想知道是否有任何东西在默认情况下为我提供了此类帮助函数


Tags: 文件方法字符串路径目录txt列表字节
3条回答

你可以通过

S2[:len(S1)] == S1

或者更简单:

S2.startswith(S1)

你可能在找os.path.commonprefix

例如:os.path.commonprefix(['/tmp/','/tmp/file.txt'])将返回'/tmp/

所以你应该检查一下

在这里签出文档:http://docs.python.org/2/library/os.path.html

是的。您可以这样做:if a in b:,它将检查a是否是b中任何地方的子字符串。

例如

if 'foo' in 'foobar':
    print True

if 'foo' in 'barfoo':
    print True

从你的帖子来看,你似乎只想看看字符串的开头。在这种情况下,可以使用.startswith方法:

if 'foobar'.startswith('foo'):
    print "it does!"

类似地,您可以对endswith执行相同的操作:

if 'foobar'.endswith('bar'):
    print "Yes sir :)"

最后,最直译的strncmp可能是使用切片和==

if a[:n] == b[:n]:
    print 'strncmp success!'

Python还有许多处理^{}模块中的路径名的工具。这里面有什么值得调查。有一些非常整洁的功能。

相关问题 更多 >