teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

コード変更

2021/01/18 04:48

投稿

kosakana_fav
kosakana_fav

スコア1

title CHANGED
File without changes
body CHANGED
@@ -42,7 +42,7 @@
42
42
  #リストの取得
43
43
  dcmp = dircmp(A_dir, B_dir)
44
44
  def main(dcmp):
45
- for name in dcmp.diff_files, dcmp.right_only:
45
+ for name in dcmp.left_only, dcmp.right_only:
46
46
  print (name)
47
47
  if __name__ == "__main__":
48
48
  main(dcmp)

3

タイトルの変更

2021/01/18 04:48

投稿

kosakana_fav
kosakana_fav

スコア1

title CHANGED
@@ -1,1 +1,1 @@
1
- 違うディレクトリで同じデータ以外削除
1
+ 2つのディレクトリを比較、片方にしかないデータ削除したい
body CHANGED
File without changes

2

途中まで作成したコードの追加

2021/01/18 04:39

投稿

kosakana_fav
kosakana_fav

スコア1

title CHANGED
File without changes
body CHANGED
@@ -4,8 +4,6 @@
4
4
 
5
5
  pythonを用いて以下のことを行いたいです.
6
6
 
7
- 教えていただければ,幸いです.
8
-
9
7
  <内容>
10
8
 
11
9
  自分のデスクトップに2つのディレクトリがあり,2つのファイルには同じファイル名のpngファイルが存在します.
@@ -20,7 +18,13 @@
20
18
  3:リスト部分のディレクトリをBから削除
21
19
 
22
20
  この3部分がうまくできません
21
+ TypeError: must be str, not int とエラーがでます。
23
22
 
23
+ 文字列ではないものを文字として使用している?とのことなのですが、
24
+ 具体的にどの部分がエラーの原因なのかわかりません
25
+
26
+ 教えていただければ,幸いです.
27
+
24
28
  よろしくお願いします.
25
29
 
26
30
  ```python
@@ -44,4 +48,9 @@
44
48
  main(dcmp)
45
49
 
46
50
  #3部分
51
+ target_dir = [#取得したリストをコピペ]
52
+ for i in target_dir:
53
+ dir = target_dir(i+1)
54
+ path = os.path.join(B_dir, dir)
55
+ shutil.rmtree(path)
47
56
  ```

1

途中まで作成したコードの追加

2021/01/18 04:28

投稿

kosakana_fav
kosakana_fav

スコア1

title CHANGED
File without changes
body CHANGED
@@ -15,8 +15,33 @@
15
15
 
16
16
  (例)Aのディレクトリには00002が存在するが,もう一方のBのディレクトリ内では欠損している.
17
17
 
18
+ 1:ディレクトリにアクセス
18
- このAとBのディレクトリ内のファイルを照ら合わせ,どちらかのディレクトリ内で欠損しているファイルを一括で削除するコードを教えていただきたいです.
19
+ 2:比較て、欠損しているファイルのリスト取得
20
+ 3:リスト部分のディレクトリをBから削除
19
21
 
20
- for文かif文,shutilあたりを応用すればと考えたです,なかなかうまくきません
22
+ 3部分がうまくきません
21
23
 
22
- よろしくお願いします.
24
+ よろしくお願いします.
25
+
26
+ ```python
27
+ import os
28
+ import shutil
29
+ import filecmp
30
+ from filecmp import dircmp
31
+
32
+
33
+ #比較するディレクトリの指定
34
+ A_dir = './A'
35
+ B_dir = './B'
36
+
37
+
38
+ #リストの取得
39
+ dcmp = dircmp(A_dir, B_dir)
40
+ def main(dcmp):
41
+ for name in dcmp.diff_files, dcmp.right_only:
42
+ print (name)
43
+ if __name__ == "__main__":
44
+ main(dcmp)
45
+
46
+ #3部分
47
+ ```