2014-03-31 41 views
0

我的桌面上有一個名爲'TEXTFILE.docx'的文本文件,文本文件中顯示'Hello my name is Jimmy Jones'。我基本上想把這個文本文件調用到python中,這樣我就可以應用一些我已經創建的函數(一個刪除元音並用空格替換它 - 另一個將每個字符加倍[即input = the,returns = tthhee] )在Python中編輯文本文件

def withoutVowels(string): 
    for vowel in ["a", "e", "i", "o", "u", "A", "E", "I", "O", "U"]: 
     string = string.replace(vowel, " ") 
    return string 

以上是刪除元音並用空格替換它的功能。

def doubleChar(doubleit): 
    doubled = [] 
    for letter in doubleit: 
     doubled.append(letter*2) 
    return "".join(doubled) 

以上是我的功能加倍信

textfile = open('TEXTFILE.docx', 'w') 

以上就是如何我試圖打開文本文件。

我又試圖打印文本文件,這想出了: * < _io.TextIOWrapper名=「TEXTFILE.docx」模式=「R」編碼=「US-ASCII」> * 是否有可能分配是什麼在TEXTFILE中給一個變量?

此外,我想也許我遇到的問題是因爲蟒蛇無法調用「Word文檔文件」,但我尋找一個程序使用.txt文件,但我無法資助我的Mac上的程序會使用.txt文件。

+2

docx文件不是純文本。看看https://github.com/mikemaccana/python-docx – UnX

回答

2

你的問題是,你其實不要有一個文本文件,你有一個MicrosoftWord文件。您需要在Word中打開文件並選擇文件 - >另存爲...,並將其另存爲「純文本」文件。

0

是的,你想做的事是這樣的:

textfile.read() 

你看,textfile是一個「類文件」對象,它支持了一堆有趣的方法。在這裏閱讀更多:https://docs.python.org/2/library/stdtypes.html#file-objects

+0

不會幫助,因爲他試圖讀取docx文件而不是txt文件,因爲標題暗示 –

+0

它確實回答了他的問題:如何查看一個文件對象的內容。 –

+0

嗯,如果他想讀很多十六進制,那麼我想它確實有幫助:>>> textfile = open('not_a_textfile.docx') >>> t_read = textfile.read() >>> t_read 'PK \ x03 \ x04 \ x14 \ x00 \ x06 \ x00 \ x08 \ x00 \ x00 \ x00 \ x00 \ x00 \ x89 \ x01 \ xa4 \ x1b \ xfc –

1

當你打開文本文件時,你的總體意圖是什麼?你打算只讀這個文件嗎?或者你想同時閱讀文件並更改它?如果你只是讀,打開該文件:

textfile = open("textfile.txt","r") #instead of "w," use "r" for reading. "r+" is both. 
#Then, go on to read the string 
text = str(textfile.read()) #str() is not necessary, but it can't hurt 
#Now, the variable "text" is a big string - it contains whatever was in that text file. 
#Then, you can apply your function to it. 
print withoutVowels(text) 
print doubleChar(text) 

編輯:上面的答案也是正確的 - 你要複製並粘貼一切從Word文件成.txt文件(類似記事本)的該計劃工作。

+0

我想使用文本文件中的文本來創建另一個文本文件,其中應用了我的兩個函數 – user3382238

+0

爲此,您可以閱讀Python文件I/O。這非常簡單,而且來自初學者程序員。 http://www.tutorialspoint.com/python/python_files_io.htm你將不得不採取上面的代碼,並添加到最後一點,使其做你想做的。不要害怕玩耍,不要害怕犯錯誤。 – kttr