Как начинающий 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)):' проверяет наличие целевого файла. BTW, очистите свой код! Странные имена, ненужные круглые скобки, «возвращение» без причины, ... это не «немного грязно», это беспорядок. – Matthias
Нет, он проверяет исходный файл, имя_файла никогда не изменяется или имена – praveen
Извините, если он смутил вас, Маттиус. Как я уже сказал, это грубая копия в работе. Вы правы, хотя я должен был прибрать его до публикации, чтобы сделать все более ясным. Множество ненужных бит и «странных имен» позволяют мне следить за тем, что происходит, и не имеют отношения к этой части сценария или остались прежними попытками заставить его работать. Это первое сообщение, которое я сделал для SO, я приношу свои извинения за опоздание – user3103208