变量
first= 'C:/Users/shady/Desktop/test folder/check'
second = 'C:/Users/shady/Desktop/test folder/checked'
first
内有一个文件名
test 1 ed.docx
&
在second
内部,有一个相似的文件名,具有不同的扩展名,以及一个额外的文件:
test 1.jpg
test 2.jpg
问题
通过查看我的代码,我需要设置choices
以便从second
返回我所有文件,但是如果两个文件夹具有相似的文件名(不包括扩展名,但包括ed
),则不显示该文件名。
我当前的代码
import os
import glob
first= 'C:/Users/shady/Desktop/test folder/check'
second = 'C:/Users/shady/Desktop/test folder/checked'
choices = os.listdir(second)
print(choices)
当前输出
['test 1.jpg', 'test 2.jpg']
所需的输出
['test 2.jpg']
这是输出,因为文件名(test 2 ed.docx
)在first
中不存在。
和
test 1.jpg
存在于first
中,因为test 1 ed.docx
是很好的匹配。
这是我要去的地方
import os
Username = "ed"
first = 'C:/Users/shady/Desktop/test folder/check/'
second = 'C:/Users/shady/Desktop/test folder/checked/'
choices = os.listdir(second)
list = []
for x in choices:
x = (x.strip('.JPG') + ' ' + Username + '.docx')
但不确定此代码所指向的方向是否正确。
答案 0 :(得分:0)
尝试一下:
import os
Username = "ed"
first = 'C:/Users/shady/Desktop/test folder/check/'
second = 'C:/Users/shady/Desktop/test folder/checked/'
one = [f for f in os.listdir(first) if isfile(join(first, f))]
two = [f for f in os.listdir(second) if isfile(join(second, f))]
for x in [one]:
x1 = [y.rstrip(' ' + Username + '.docx')+'.jpg' for y in x]
choices = (set(two).difference(x1)) # returns all files that are not the same based on 'x1'