连接python上的反斜杠

时间:2014-04-01 16:53:25

标签: python concatenation backslash

我是python的新手,请原谅我,如果这听起来很简单。我想加入一些变量来产生一个路径。像这样:

AAAABBBBCCCC\2\2014_04\2014_04_01.csv

Id + '\' + TypeOfMachine + '\' + year + '_' + month + '\' + year + '_' + month + '_' + day + '.csv'

如何连接它?我在下划线或反斜杠周围添加单引号,但stackoverflow忽略/修改它们。

6 个答案:

答案 0 :(得分:8)

您应该使用os.path.join来构建路径。

e.g:

import os
path = os.path.join(Id, TypeOfMachine, year + '_' + month, year + '_' + month + '_' + day + '.csv')

或者如果你坚持使用反斜杠,你需要转义它们:as,所以'\\'

答案 1 :(得分:4)

通常,你加倍反斜杠:

'\\'

使用os.path.join()加入目录和文件名元素,并对其余元素使用字符串格式:

os.path.join(Id, TypeOfMachine, '{}_{}'.format(year, month), 
             '{}_{}_{}.csv'.format(year, month, day))

让Python负责为您的平台使用正确的目录分隔符。这样做的好处是您的代码可以移植;它也适用于Windows以外的操作系统。

通过使用字符串格式,您还可以处理任何非字符串参数;例如,如果yearmonthday是整数。

答案 2 :(得分:3)

反斜杠通常用于转义特殊字符串。例如:

>>> print "hi\nbye"
hi
bye

告诉Python不要计算斜线,因为通常使用" raw"字符串,可以在字符串前面加上字母' r'写成string literal

>>> print r"hi\nbye"
hi\nbye

然而,即使是原始字符串也不能以奇数个反斜杠结束。这使字符串连接变得困难。

>>> print "hi" + r"\" + "bye"
File "<stdin>", line 1
print "hi" + r"\" + "bye"
                       ^
SyntaxError: invalid syntax

有几种方法可以解决这个问题。最简单的是使用字符串格式:

>>> print r'{}\{}'.format('hi', 'bye')
hi\bye

另一种方法是在常规字符串中使用双反斜杠来转义第一个反斜杠:

>>> print 'hi' + '\\' + 'bye'
hi\bye

但所有这些都假设您面临使用反斜杠的合法需求。如果你要做的只是构建Windows路径表达式,只需使用os.path.join

答案 3 :(得分:1)

如果不导入os.path模块,您只需执行以下操作:

 my_path = '\\'.join([Id,TypeOfMachine, year + '_' + month, year + '_' + month + '_' + day + '.csv'])

答案 4 :(得分:0)

您可以简单地通过其ASCII码调用该字符。 (我正在使用Python 3.7)。

示例:

在这种情况下,ASCII码为92,您可以使用Python's chr() function来调用字符

enter image description here

this website中,您可以找到用于更多可打印字符的ASCII代码列表。

上面使用的代码:

delimiter = chr(92)

FileName = 'Id' + delimiter + 'TypeOfMachine' + delimiter + 'year' + '_' + 'month' + delimiter + 'year' + '_' + 'month' + '_' + 'day' + '.csv'

print(FileName)

希望有帮助。

答案 5 :(得分:0)

您还可以使用普通字符串,例如:

Id + '/' + TypeOfMachine + '/' + year + '_' + month + '/' + year + '_' + month + '_' + day + '.csv'
相关问题