<p>您遇到了问题,因为反斜杠表示<a href="https://docs.python.org/2.0/ref/strings.html" rel="nofollow noreferrer">escape characters</a>。例如,正如您所发现的,<code>\t</code>是一个选项卡,但Python也将<code>\a</code>和<code>\f</code>视为转义字符。事实证明,它们分别代表ASCII bell和form feed。谁知道呢?一种解决方案是使用原始字符串,在字符串的引号前用<code>r</code>表示,它不会检查转义字符,并将反斜杠视为纯文本。否则,您需要写入<code>\\</code>以显示反斜杠</p>
<p>而且,<code>os.path.normpath</code>{a2}并且不会在Linux中执行您需要的操作,因此您还需要一个<code>replace</code>。一般来说,如果必须选择所有正向斜杠或所有反向斜杠,请选择所有正向斜杠,因为<a href="https://stackoverflow.com/questions/38428561/difference-between-forward-slash-and-backslash-in-file-path/38428899">Windows can handle forward slashes</a>而其他操作系统无法处理反向斜杠</p>
<pre><code># Declare list
ManualList = [r'D:\abcddev\toeblog/folderX/fileA.h',r'D:\abcddev\toeblog/folderY/fileB.h']
NormalizedFilePathList = []
# Add standardized slash separated lines to NormalizedFilePathList
for file in ManualList:
NormalizedFilePathList.append (os.path.normpath(file.replace('\\', '/')))
# Display the contents of NormalizedFilePathList
for file in NormalizedFilePathList:
print file
# Create the string to be searched for.
# Use forward slashes in the string below to preserve compatibility for Linux.
# normpath will convert them to backslashes on Windows.
test_file = os.path.normpath('D:/abcddev/toeblog/folderY/fileB.h')
# Search for the string in NormalizedPathFileList
if test_file in NormalizedFilePathList:
print "Found test_file"
else:
print "Did not find test_file"
</code></pre>