當一個文件給我一個我很好奇的意外輸出時,今天就開始練習使用字典和文件I/O。我寫了下面簡單的函數,只需要一個文本文件的第一行,把它分成單個的單詞,並把每個單詞到詞典:readline()產生意想不到的字符串
def create_dict(file):
dict = {}
for i, item in enumerate(file.readline().split(' ')):
dict[i]= item
file.seek(0)
return dict
print "Enter a file name:"
f = open(raw_input('-> '))
dict1 = create_dict(f)
print dict1
夠簡單,在任何情況下它正好產生預期的輸出。除了一個以外的每個案例。我有一個被通過以下shell命令另一個python腳本的輸出通過管道到一個文本文件中創建一個文本文件:
C:\> python script.py > textFile.txt
當我使用TextFile.txt的用我的字典劇本,我得到一個輸出如下如:
{0: '\xff\xfeN\x00Y\x00', 1: '\x00S\x00t\x00a\x00t\x00e\x00', 2: '\x00h\x00a\x00s\x00:\x00', 3: '\x00', 4: '\x00N\x00e\x00w\x00', 5: '\x00Y\x00o\x00r\x00k\x00\r\x00\n'}
此輸出稱爲什麼?爲什麼通過命令行將腳本輸出管道輸出到文本文件會產生與其他文本文件不同類型的字符串?爲什麼在我的文本編輯器中打開該文件時沒有明顯的差異?我搜索和搜索,但我甚至不知道那會被稱爲,因爲我還很新。
謝謝!我不知道那是什麼,現在我可以自己搜索,並花一些時間閱讀編碼和增加我的Python功夫:-) – JtheDude 2014-10-10 04:49:32
@JasonSherrick:不要使用'file.readline()。split() '')'原始utf-16字節。它將輸入內容*拆分爲換行符(在您的問題中顯示清楚),破壞數據。 – jfs 2014-10-10 05:17:58