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 に答える