#python-3.x #python
#python-3.x #python
Вопрос:
def wpath():
defpath = '/home/me/documents/'
os.chdir(defpath)
path = str(input("would you like to change current working directory? [y/yes] if you want"))
if path == 'yes' or path == 'y':
while True:
try:
os.chdir(input('Enter new path! n'))
break
except OSError:
print('nno such directory! Try again!')
else:
pass
src()
def src():
global d
d = {}
n = 0
for file in os.listdir('.'):
if re.search('.?.(txt|csv|log)', file):
n = 1
print(n, file)
d[n] = file
if len(d) == 0:
del d
wpath()
wpath()
val = int(input('Enter number of filen'))
if val in d:
source = d[val]
После того, как я опубликовал свой пост, я осознал свою ошибку. Спасибо.
Теперь код работает. Я исправил код в своем вопросе.
Ответ №1:
Вы вызываете, del d
только если len(d) == 0
. Происходит ли это? Можете ли вы вставить print
вызов в эту ветвь и посмотреть, del
действительно ли вызывается?
Тем не менее, del d
это запах кода. Я на 99,99% уверен, что вам действительно не нужно использовать это здесь. Можете ли вы объяснить, что именно вы пытаетесь сделать?
Кроме того, зачем вам нужен d
в качестве словаря, если вы добавляете в него только последовательные цифровые клавиши? Не было бы лучше вместо этого иметь список и append
к нему?
Комментарии:
1. Eli «Тем не менее, удаление d — это запах кода. Я на 99,99% уверен, что вам действительно не нужно использовать это здесь. Можете ли вы объяснить, что именно вы пытаетесь сделать?» Я хочу удалить пустую переменную ‘d’, если в каталоге нет нужных файлов (txt,log)
2. @werwolf_x: почему вы хотите ее удалить?
3. Я думаю, что это самый простой вариант. что вы предлагаете?
4. @werwolf_x: удаление переменной в Python редко бывает полезным. вы могли бы снова присвоить ее {}