1. 程式人生 > >Python中正反斜槓('/'和'\')的意義

Python中正反斜槓('/'和'\')的意義

  剛剛在學習些測試報告的時候,出現一個路徑的問題,找了很久的原因,竟然是少了一個反斜槓引起的,在此順便記錄一下正反斜槓的作用。

  在Python中,記錄路徑時有以下幾種寫法,如:(大家都知道\n是換行的意思)

report_dir1=r‘C:\Local\Programs\Python\Python35\Lib\n_test’

report_dir2=‘C:\Local\Programs\Python\Python35\Lib\n_test’

report_dir3=‘C:/Local/Programs/Python/Python35/Lib/n_test’

  這三個路徑的寫法是等價的:

report_dir1中加入r後,使得編譯器不會把‘\n_test’中的“\n”單獨作為一個換行符,而是與後面的“_test”作為一個整體。

report_dir2中都是\,使用雙斜槓是因為其中一個反斜槓代表轉義的意思,因此每一個\都被轉義成\。

report_dir3就不用自說了。

  另外,補充一點,在Python中,如果在列印的句末加上”\”,則為下一行繼續,不會換行。

  給大家看一下我寫測試報告時遇到的問題
  

if __name__ == '__main__':

#定義測試報告路徑
    report_dir = './test_report'
#定義測試報告日期
now=time.strftime('%Y-%m-%d') #定義測試報告的名字,之前犯得錯誤就是在report_dir後面沒有新增“/” report_name=report_dir+'/'+'test_baidu_'+now+'report.html' with open(report_name,'wb') as f: #載入執行器,寫入測試資料 runner=BSTestRunner(stream=f,title='Test Report',description='BaiDu Test Report') runner.run(discovery) f.close
()

之前犯得錯誤就是在report_dir後面沒有新增“/”,以至於在生成測試報告的時候,將report_dir當成了文字,把./test_report寫入到了report_name(即報告名字)的一部分。並不是把report_dir當成一個路徑來使用。

與君共勉!