2015-01-14 37 views
0

我想打開要寫入的文件。在Python中打開文件夾中的文件

with open('test.txt','a') as textfile: 
    ... 

它的工作原理是這樣的。

現在我想從一個名爲args.runkeyword的目錄打開/創建該文件。

with open(os.path.join(args.runkeyword, 'test.txt'),'a') as textfile: 

t說找不到test/test.txt(假設runkey是測試)。

我也嘗試追加os.getcwd()但它仍然無法找到或創建該文件。

任何想法?

+0

這可能是一個愚蠢的問題..但'。/ test'目錄是否存在? – ptierno

+0

在當前工作目錄中是否存在名爲'test'的目錄?也許你需要先調用'os.mkdir'? – user4815162342

+0

您是否在調用「open」之前檢查目錄是否存在? – randomusername

回答

1

os.getcwd()實際上與您的工作無關。使用os.listdir()查看目錄中的每個文件夾。如果之前有任何以test命名的問題,可能會出現問題。

像這樣的遞歸函數可能對你有用;

import os 

def tara(directory): 
    start = os.getcwd() 
    files = [] 
    os.chdir(directory) 

    for oge in os.listdir(os.curdir): 
     if not os.path.isdir(oge): 
      files.append(oge) 
     else: 
      files.extend(tara(oge)) 

    os.chdir(start) 
    return files 
+0

實際的名稱不是測試,這只是一個例子。我會嘗試os.listdir()。但是該目錄存在,並且沒有該目錄,該文件將寫入與(子)目錄相同的目錄中。 – dorien

+0

@dorien檢查我的編輯 –

-1
file = open('test.txt', 'a+') 

你應該有'a +'而不是'a',+允許你追加。

+0

但它應該附加我寫入的內容。它仍然會這樣做嗎? – dorien

+1

'a'也會創建該文件,如果它不存在。 '+'指定除了追加之外還需要執行讀取。 – interjay