Я пытаюсь найти способ написать скрипт, если any файл CSV существует в каталоге, удалите его. Как я могу написать это, не указывая конкретное имя файла?
Можно ли написать, если существует какой-либо файл, но с расширением .py, удалить его с помощью os?
import os
if os.path.exists("AHU4_data_CSV.csv"):
os.remove("AHU4_data_CSV.csv")
else:
print("The file does not exist")
.lower().endswith(".csv") в случае .CSV






Это должно работать - просто перечислите все файлы/папки в каталоге, и если они не заканчиваются на .py, удалите их.
for filename in os.listdir('.'):
if not filename.endswith('.py'):
if os.path.isfile(filename):
os.remove(filename)
else:
os.rmdir(filename)
Здравствуйте, можно ли когда-нибудь включить оператор or для включения файлов .csv и .png в дополнение к .py? Что-то вроде: if not filename.endswith('.py') or not filename.endswith('.csv') or not filename.endswith('.png'):
and будет работать лучше, чем or там (if not (any of these) и if not(this) and not(this) and not(this) логически эквивалентны. Но да, это было бы просто сделать.
Ах, хорошо, значит, if not filename.endswith('.py','.csv','png'): тоже подойдет? Спасибо за вашу помощь
Нет, потому что функция endswith() так не работает, но if not (filename.endswith('.py') or filename.endswith('.csv') or filename.endswith('.png')): должна работать
ты мог бы сделать вот так
import os
mydir='path/to/dir/with/files'
for file in os.listdir(mydir):
if file.endswith('.csv'):
os.remove(os.path.join(mydir,file))
вы можете сделать что-то вроде этого:
import os
root = "e:/"
for root, dirs, files in os.walk(root):
for file in files:
if file.endswith('.csv'):
print("removed: " + os.path.join(root, file) )
os.remove( os.path.join(root, file) )
Он удалит из ваших E каталогов все файлы CSV, включая файлы CSV подпапок из E.
пройдитесь по каждому файлу и посмотрите, есть ли они
endswith('.csv')