0

我有一个像script = "C:\Users\dell\byteyears.py". 我想把字符串放在字符串"Python27\"之间,比如script = "C:\Users\dell\Python27\byteyears.py. 为什么我需要是因为 build_scripts 没有在 Windows 上正确运行。无论如何,我怎样才能以高效的方式实现这个愿望?

编辑:我不会打印任何东西。字符串存储在 build_scripts 中的脚本变量中

  script = convert_path(script)

我应该放一些东西来转换它,比如

  script = convert_path(script.something("Python27/"))

问题是something应该是什么。

4

3 回答 3

2

os.path最适合处理路径,也可以在 Python 中使用正斜杠。

In [714]: script = r"C:/Users/dell/byteyears.py"
In [715]: head, tail = os.path.split(script)
In [716]: os.path.join(head, 'Python27', tail)
Out[716]: 'C:/Users/dell/Python27/byteyears.py'

在一个模块中。

import os
script = r"C:/Users/dell/byteyears.py"
head, tail = os.path.split(script)
newpath = os.path.join(head, 'Python27', tail)
print newpath

'C:/Users/dell/Python27/byteyears.py'

在内部 Python 通常不知道斜线,所以使用正斜线“/”,因为它们看起来更好,并且不必转义。

于 2013-02-07T09:48:44.833 回答
1
import os
os.path.join(script[:script.rfind('\\')],'Python27',script[script.rfind('\\'):])
于 2013-02-07T09:47:28.067 回答
0

尝试:

from os.path import abspath
script = "C:\\Users\\dell\\byteyears.py"
script = abspath(script.replace('dell\\', 'dell\\Python27\\'))

注意:在使用字符串时,永远不要忘记转义 \!

如果你正在混合 / 和 \ 那么你最好使用 abspath() 将其更正到你的平台!


其他方法:

print "C:\\Users\\dell\\%s\\byteyears.py" % "Python27"

或者,如果您希望路径更加动态,则可以通过这种方式传递一个空字符串:

print "C:\\Users\\dell%s\\byeyears.py" % "\\Python27"

也可以:

x = "C:\\Users\\dell%s\\byeyears.py"
print x
x = x % "\\Python27"
print x 
于 2013-02-07T09:42:09.043 回答