私は次のpythonコードを使用して、特定のディレクトリ内のファイルのコピーを1つだけ削除します。関数内でのPython変数の参照
delete()
関数の最初の4行をコメントアウトするとうまくいきますが、もしそうでなければ、割り当て前にローカル変数list1が参照しているというエラーが表示されます。また、グローバルと呼ばれるものを使用しようとしましたが、エラーがあったとして、それがNoneType
であると言ってくれて助けにはなりませんでした。 私はちょうど私がPythonの中級初心者です。
list1 = []
list2 = []
def stripe(lis):
for i in range(len(lis)):
lis[0] = lis[0].strip()
def scan(pat):
pat = os.path.abspath(pat)
files = os.listdir(pat)
for file in files:
filepath = os.path.join(pat,file)
if os.path.isfile(filepath):
list1.append(file)
list2.append('{0}'.format(filepath))
elif os.path.isdir(filepath):
scan(filepath)
def delete():
list1_1 = stripe(list1)
list2_1 = stripe(list2)
list1 = list1_1
list2 = list2_1
length = len(list1)
#length = length - 1
i = 0
while i < length:
item = list1[0]
a = list1[0]
b = list2[0]
del list1[0]
del list2[0]
if item in list1:
try:
os.remove(list2[list1.index(item)])
#del list1[list1.index(item)]
#del list2[list1.index(item)]
except:
print('sorry',list1[0],'could not be deleted',sep = ' ')
print('wow')
i += 1
#list1.append(a)
#list2.append(b)
あなたは[最小限の完全な検証例](https://stackoverflow.com/help/mcve)を作成しようとしたことがありますか? –
削除機能の最初の5行だけを考慮することができます。エラーがそこに来ているので –
@ChiefVOLDERMORT理想的には、同じ動作を示す5行のサンプルを提供します。通常は、プログラムを問題の本質に戻しながらエラーを発見します。それは私たちの工芸品の一部です。 –