2011-04-05 51 views
1

我有點新來python,不知道爲什麼這是行不通的。 我有一個變量,它是這樣的:python startswith方法

[u'\n    Data I want    '] 

,但我也有僅僅是變量:

[u'    more Data I want    '] 

我通過一個循環運行的變量,但我需要去除所有多餘的有關數據的東西。我創建了一個函數來處理這個,但我不知道爲什麼它不工作(我不知道,但我懷疑\ n是一個特殊字符)

def stripName(name): 
    name = str(name) 
    if name.startswith("\n"): 
     print "starts with new line" 
     name = name[5:-2] 
    else: 
     print "does not start with new line" 
     name = name[3:-2] 
    return name 

的問題是:「如果name.startswith (「\ n」)「從來沒有匹配過......我看過其他例子,我認爲我是這樣做的。我甚至試過if name.startswith("\n") == 'True':,但那也沒用。

在此先感謝您提供的任何見解。

+0

這不是一個「命令」它是一個字符串的「方法」。請更新您的問題。 – 2011-04-05 20:36:21

+0

嗨S.洛特..我剛剛更新了它的遺憾。不像5分鐘前,我不知道區別..盧爾。對於那個很抱歉。 – Lostsoul 2011-04-05 20:48:27

回答

4

如何:

def stripName(name): 
    return name[0].strip() 

+0

哇謝謝..這幾乎刪除了我的主要代碼。不知道你能做到。謝謝史蒂夫! – Lostsoul 2011-04-05 20:31:19

3

我想你是通過list實例,然後使用str(在name=str(name))將其轉換爲字符串。改爲嘗試name=name[0]

此外,代碼看起來格式不正確。 def後面的行應縮進一級。另外,startswith不是命令。它是一種方法。請直接說出你的術語,否則你會變得非常困惑。像Python這樣的編程語言沒有任何「命令」。相反,代碼由語句和表達式組成,包括方法調用。

+0

謝謝MAK..makes意義..我仍然在想,我在我的shell腳本天....lol。感謝您的提示和幫助!祝你有愉快的一天! – Lostsoul 2011-04-05 20:41:05

1

如果名字是[u'\n data '],那麼str(name)包括方括號。你應該寫

name = name[0]