2015-10-21 101 views
-3

我打開文件'testFile'並以逗號分隔它。到現在爲止還挺好。在一行中的第二個值是「30」 行是「這是一個,30,測試」 我可以驗證它正在拆分,因爲我可以打印零件[1]並打印「30」,但爲什麼是當這個值是30時,repeats.isdigit()返回false?isdigit返回false爲整數

with open('testFile') as fp: 
    for line in fp: 
     parts = line.split(',') 

     repeats = parts[1] 
     print repeats.isdigit() 
     print parts[1] 
+4

'「30」'不是「」30「'。 – user2357112

+0

那麼有沒有一種簡單的方法來解析/忽略空間並將其讀取爲一樣? – swinters

+0

使用嘗試/除了鑄造int –

回答

1

isdigit()應用到「30」永遠的「30」前回歸,因爲的空白假。要解決此問題,請使用.strip()之前的方法isdigit()

0
You could use re.split. it can split on mult tokens. 
import re 
with open('data') as f: 
    for line in f: 
     # split on white space and commas 
     line = re.split(r'[ ,]',line) 
     # re.split leaves some empty strings, so remove them 
     line = [el for el in line if el] 
     print(line) 
     print(line[3].isdigit()) 

['This', 'is', 'a', '30', 'test'] 

True