Python 在其他中添加字符串

Python 在其他中添加字符串,python,Python,我有一个类似于script=“C:\Users\dell\byteyears.py”的字符串。我想把字符串“Python27\”放在字符串之间,比如script=“C:\Users\dell\Python27\byteyears.py。我之所以需要它,是因为构建脚本在windows上没有正确运行。无论如何,我如何以高效的方式实现这个愿望 编辑:我不会打印任何内容。字符串存储在build_脚本中的脚本变量上 script = convert_path(script) 我应该放一些东西来转换它

我有一个类似于
script=“C:\Users\dell\byteyears.py”
的字符串。我想把字符串
“Python27\”
放在字符串之间,比如
script=“C:\Users\dell\Python27\byteyears.py
。我之所以需要它,是因为构建脚本在windows上没有正确运行。无论如何,我如何以高效的方式实现这个愿望

编辑:我不会打印任何内容。字符串存储在build_脚本中的脚本变量上

  script = convert_path(script)
我应该放一些东西来转换它,比如

  script = convert_path(script.something("Python27/"))
问题是什么东西应该是什么。

试试:

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 
尝试:

注意:使用字符串时,千万不要忘记转义! 如果您正在混合/和\则最好使用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 

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
给予


在内部,Python对斜杠一般是不可知的,所以使用前斜杠“/”,因为它们看起来更漂亮,并且不必逃避。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
给予



在内部,Python通常不知道斜杠,所以使用前斜杠“/“因为它们看起来更漂亮,省得逃跑

这取决于脚本的外观。。。什么是脚本?普通字符串?@Torxed似乎是普通字符串使用replacea方法检查我的最新更新/解决方案,并通过
abspath()
确保您的路径是系统有效的,这取决于脚本的外观。。。什么是脚本?普通字符串?@Torxed似乎是普通字符串使用replacea方法检查我的最新更新/解决方案,并通过
abspath()
确保您的路径是系统有效的。我如何在模块中使用您的代码?输入[],输出[]的含义是什么?我用的是iPython,它们只是标记。我将编辑有意义。再次,这只是添加尾随PATS,而不是在中间真正:)我产生了OP所需要的,这是很容易的,因为他们实际上想要把目录名附加到现有目录。我认为在简单的情况下使用
os.path.*
更为明确。我承认,如果路径真的很深,那么使用
os.path.split
将是一种折磨。通常,我发现这只是更改目录结构的开头或结尾的问题。我如何在模块中使用您的代码?输入[],输出[]的含义是什么?我用的是iPython,它们只是标记。我将编辑有意义。再次,这只是添加尾随PATS,而不是在中间真正:)我产生了OP所需要的,这是很容易的,因为他们实际上想要把目录名附加到现有目录。我认为在简单的情况下使用
os.path.*
更为明确。我承认,如果路径真的很深,那么使用
os.path.split
将是一种折磨。通常我发现这是一个改变目录结构的头部或尾部的问题。只需注意:这只会在路径中添加“<代码> Python 27 \\/Cord>”的路径,而不是在中间。同样,只有当路径中存在
\\dell
时,我的才起作用。要想真正有活力,请选择我写的最后一个解决方案。你的解决方案是找到\的第一次出现。结果是'C:\Python27\byteyears.py'不是'C:\Users\Dell\Python27\byteyears.py'首先,它不在任何地方搜索
Dell
;其次,它从右边搜索(这是
rfind
中的
r
),因此它将找到最后一个“\”。@BurhanKhalid Dunno如果你主要对我的评论或用户发表评论,我在我的评论中引用的是我的解决方案,而不是你的。。我只是给出了一个提示,这只会在添加原始数据上附加的路径数据时起作用。只需注意:这只会在路径中添加“<代码> Python 27 \\/Cord>”的路径,而不是在中间。同样,只有当路径中存在
\\dell
时,我的才起作用。要想真正有活力,请选择我写的最后一个解决方案。你的解决方案是找到\的第一次出现。结果是'C:\Python27\byteyears.py'不是'C:\Users\Dell\Python27\byteyears.py'首先,它不在任何地方搜索
Dell
;其次,它从右边搜索(这是
rfind
中的
r
),因此它将找到最后一个“\”。@BurhanKhalid Dunno如果你主要对我的评论或用户发表评论,我在我的评论中引用的是我的解决方案,而不是你的。。我只是提醒了一下,这只会在原始数据的后面添加额外的路径数据。在实时运行时,我不知道脚本变量包含什么。所以,我找不到一种方法来使用您的解决方案,您必须知道在运行时<代码>脚本/>代码>变量包含什么,否则您就不能在字符串的中间添加“代码”> Python 27 <代码>,您必须知道字符串是否必须在开始、结束或中间添加(如您在问题中所述)。:)为了能够帮助您进一步了解I for one,需要至少有3个不同的示例,说明如何以及在何处添加
Python27
字符串,以便我们可以对其进行核心化,并构建合适的regexp查找或替换函数。使用
x=r“C:\Users\dell%s\byeyears.py”
将消除转义的需要。@因此,请尝试以下方法,您会发现在大多数Python版本中都不会出现转义