私はPDF生成プログラムを作成しています。 1つの機能は、すべてのpdfsをマージして後のすべての部分を削除することです。私はpdfsのパスを変更するまで完全に動作しています。私は1つのディレクトリに戻ってそれを設定している場合files_dir
変数を見てみるとOS.REMOVEは正常に動作していません
def pdf_cleanup(name):
files_dir = '/root/PycharmProjects/ReportApp/FML/Pdf_Docs'
xx = [f for f in os.listdir(files_dir) if f.endswith("pdf")]
for f in xx:
if f.startswith(name):
pass
else:
os.remove(f)
return
- それが正常に動作したよりそれがこのfiles_dir = '/root/PycharmProjects/ReportApp/FML'
次のようになります。ここでは関数です。私がPdf_Docsディレクトリでそれを使用しようとすると、 'name_of_pdf'が存在しないと言ってエラーになります。
トレースバック:
/usr/bin/python3.5 /root/PycharmProjects/ReportApp/FML/dump.py
Traceback (most recent call last):
File "/root/PycharmProjects/ReportApp/FML/dump.py", line 16, in <module>
pdf_cleanup('mer')
File "/root/PycharmProjects/ReportApp/FML/dump.py", line 13, in pdf_cleanup
os.remove(f)
FileNotFoundError: [Errno 2] No such file or directory: 'Main_Calls.pdf'
Process finished with exit code 1
は私が見下ろす午前愚かと小さなものがあります?なぜ私は1つのフォルダを変更するとそれを壊すのか分かりません。
新しい場所を使用していないようです。 'os.remove(files_dir + '/' + f)' –
'os.listdir(files_dir)'はリストを返しますファイル名+拡張子のこのように、ファイルが実行可能ファイルと同じディレクトリにある場合に機能します。したがって、パスとファイル名を結合するには 'os.remove(os.path.join(files_dir、f))'を呼び出す必要があります。 –