2014-04-01 3 views
3

저는 파이썬에 처음이에요. 그래서 간단하다면 용서해주세요. 몇 가지 변수를 결합하여 경로를 만들고 싶습니다. 좋아요 :파이썬에서 백 슬래시를 연결하십시오.

AAAABBBBCCCC\2\2014_04\2014_04_01.csv 

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

어떻게 연결하나요? 밑줄이나 백 슬래시 주위에 작은 따옴표를 넣었지만 stackoverflow는이를 생략/수정합니다.

+0

이 문제를 해결하는 방법은 여러 가지가 있지만 kojiro의 수정 된 sugestion을 사용하여 끝났습니다. r '{} \ {}'. format ('hi', 'bye') Thanks all! –

답변

2

백 슬래시는 일반적으로 특별한 문자열을 탈출하는 데 사용됩니다. 예를 들어 : 특별한 보통 문자 'R'로 문자열을 이전하여 string literal로 기록 할 수있는 "원시"문자열을 사용하는 것만 큼 쉽게로

>>> print "hi\nbye" 
hi 
bye 

파이썬을 말하는 슬래시를 계산하지.

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

그러나 원시 문자열조차도 홀수 개의 백 슬래시로 끝날 수 없습니다. 이것은 문자열 연결을 어렵게 만듭니다.

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

이 문제를 해결하는 방법에는 여러 가지가 있습니다. '

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

그러나이 모든 당신을 가정하는 가장 쉬운 사용하는 문자열 형식 :

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

또 다른 방법은 첫 번째와 두 번째 백 슬래시를 탈출하기 위해 정기적 문자열에 이중 백 슬래시를 사용하는 것입니다 백 슬래시를 사용할 합법적 인 필요성에 직면 해 있습니다. Windows 경로 표현식을 구성하려는 경우에만 os.path.join을 사용하십시오.

6

경로를 구성하려면 os.path.join을 사용해야합니다.

예 :

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

또는 백 슬래시를 사용하여 주장하는 경우, 당신이 그들을 탈출해야합니다 그래서 '\\'

3

일반적으로, 당신이 거라고로 더블 백 슬래시 :

'\\' 

os.path.join()을 사용하여 디렉토리 및 파일 이름 요소를 결합하고 나머지는 문자열 형식을 사용하십시오.

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

파이썬이 플랫폼에 맞는 올바른 디렉토리 구분 기호를 사용하도록하십시오. 이렇게하면 코드가 이식 가능 해지는 장점이 있습니다. Windows 이외의 OS에서도 작동합니다.

문자열 서식을 사용하면 문자열이 아닌 인수도 처리합니다. year 일 경우, monthday은 정수입니다. 당신이 할 수을 os.path 모듈을 가져 오지 않고

+0

+1 여기서'format'은 여러분의 데이터 타입을 변환합니다.'int's에'os.path.join'을 사용할 수 없습니다. – quornian

1

단순히 수행

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