作爲一名Python初學者,我遇到了一些實際的問題。下面是我最終(!)做的一個腳本,它只是將選擇的文件從選擇的目錄移動到新的文件夾。 由於某些我無法理解的原因,它只能使用一次,然後創建的目標文件夾真的很奇怪。有一次,它創建了一個名爲「目錄」的未知應用程序,並使用正確的名稱創建了一個文本文件,並使用看似隨機的文件生成內容 - 同樣,它創建的文件也被正確命名。shutil.copy只能工作一次
下面是相關的腳本:
#!/usr/bin/python
import os, shutil
def file_input(file_name):
newlist = [] #create new list
for names in os.listdir(file_name): #loops through directory
if names.endswith(".txt") or names.endswith(".doc"): #returns only extensions required
full_file_name = os.path.join(file_name, names) #creates full file path name - required for further file modification
newlist.append(full_file_name) #adds item to list
dst = os.path.join(file_name + "/target_files")
full_file_name = os.path.join(file_name, names)
if (os.path.isfile(full_file_name)):
print "Success!"
shutil.copy(full_file_name, dst)
def find_file():
file_name = raw_input("\nPlease carefully input full directory pathway.\nUse capitalisation as necessary.\nFile path: ")
file_name = "/root/my-documents" #permanent input for testing!
return file_input(file_name)
'''try:
os.path.exists(file_name)
file_input(file_name)
except (IOError, OSError):
print "-" * 15
print "No file found.\nPlease try again."
print "-" * 15
return find_file()'''
find_file()
有人能告訴我爲什麼當我刪除創建的文件夾,並嘗試再次運行它,我能做些什麼來實現這一目標這個腳本是不可複製的?
我知道這有點亂,但這是一個更大的腳本的一部分,我仍然處於初稿階段!
非常感謝
'if(os.path.isfile(full_file_name)):'檢查是否存在目標文件。順便說一句,清理你的代碼!奇怪的名字,不需要的括號,沒有理由的「返回」......這不是「有點混亂」,這是一團糟。 – Matthias
不,它會檢查源文件,file_name永遠不會被修改,也不會名稱 – praveen
對不起,如果它讓你困惑你Matthius。正如我所說,這是一份粗略的工作。你說得對,我應該在發佈之前整理一下,以便更清楚地說明問題。許多不必要的部分和'奇怪的名字'讓我能夠跟隨正在發生的事情,而不是與這部分腳本相關,或者是以前嘗試使其工作的部分遺留下來。這是我發佈的第一篇文章,我對遲到表示抱歉 – user3103208