這裏的問題:從字符串中刪除編碼的文本
我複製並從文本行https://www.cboe.org/mdx/mdi/mdiproducts.aspx
樣品粘貼此整個列表到一個txt文件:
BFLY - The CBOE S&P 500 Iron Butterfly Index BPVIX - CBOE/CME FX British Pound Volatility Index BPVIX1 - CBOE/CME FX British Pound Volatility First Term Structure Index BPVIX2 - CBOE/CME FX British Pound Volatility Second Term Structure Index
這些行當然在我的文本文件中看起來很正常,我用utf-8編碼保存了文件。
我的目標是使用python去掉這個長列表中的符號,例如.e.g。 BFLY,VPVIX等,並將其寫入到一個新的文件
我使用下面的代碼讀取該文件,並把它分解:
x=open('sometextfile.txt','r')
y=x.read().split()
我看到的問題是,有不熟悉的字符大跌眼鏡他們正在影響我篩選名單的能力。例如:
print(y[0])
BFLY
我猜測,這些字符必須是與編碼和我試圖與沒有成功的編解碼器模塊一些不同的東西。使用.decode('utf-8')嘗試將它用於上述變量x或y時會引發錯誤。我可以使用.encode('utf-8'),這顯然使事情變得更糟。
主要問題是,當我嘗試循環訪問列表並刪除不是全部大寫或包含非字母字符的任何項目時。例如:
y[0].isalpha()
False
y[0].isupper()
False
所以在這個例子中,符號BFLY最終被從列表中刪除。
有趣的是,這些人物都沒有出現在一個txt文件,如果我這樣做:
q=open('someotherfile.txt','w')
q.write(y[0])
任何幫助將不勝感激。我真的很想理解爲什麼在從這樣的網頁複製和粘貼文本時經常發生這種情況。
您可以編輯您的問題,其中顯示有數據文件信息 - 使用{}按鈕,保持線路的格式。我會這樣做,但是它太短了編輯 –
我複製以及粘貼到一個文件使用vim。也許你的文本編輯器設置爲將文件保存在utf-8以外的文件中?或者也許它正在更改引號來捲曲引號 –
不幸的是,我正在使用Windows記事本。如果我將相同的文本複製到記事本++,我沒有看到任何可以指示這些字符存在的內容。也許我會嘗試用記事本++代替它。 –