擅长:python、mysql、java
<p>唯一的方法是使用启发式方法,因为ssh路径也是有效的文件名(尽管非常奇怪)。在</p>
<p>根据scp文档:</p>
<blockquote>
<p>File names may contain a user and host specification to indicate that
the file is to be copied to/from that host. Local file names can be made
explicit using absolute or relative pathnames to avoid scp treating file
names containing ‘:’ as host specifiers.</p>
</blockquote>
<p>所以检查它们是否以显式路径开始,或者在正确的位置没有冒号。然后假设它是本地路径,否则假设它是远程路径。在</p>
<p>示例:</p>
<pre><code>pattern = '(\.?/|/)|(^:?[^:]*$)'
re.match(pattern, ":home/test") # match, is a local path
re.match(pattern, "user@host:blah") # no match
</code></pre>