使用python 2.7我正在使用这些文件http://www.2shared.com/file/biSx7NI-/comer.html进行os.walk,然后将结果与数组进行比较。在实际程序中,此阵列不会被预定义。我尝试使用的代码如下
# -*- coding: utf-8 -*-
import os.path
group = ['comer.txt', 'coma.txt', 'comamos.txt', 'coman.txt', 'comas.txt', 'come.txt', 'comed.txt', 'comemos.txt', 'comen.txt', 'comeremos.txt', 'comer\xc3\xa1.txt', 'comer\xc3\xa1n.txt', 'comer\xc3\xa1s.txt', 'comer\xc3\xa9.txt', 'comer\xc3\xa9is.txt', 'comer\xc3\xada.txt', 'comer\xc3\xadais.txt', 'comer\xc3\xadamos.txt', 'comer\xc3\xadan.txt', 'comer\xc3\xadas.txt', 'comes.txt', 'comido.txt', 'comiendo.txt', 'comiera.txt', 'comierais.txt', 'comieran.txt', 'comieras.txt', 'comiere.txt', 'comiereis.txt', 'comieren.txt', 'comieres.txt', 'comieron.txt', 'comimos.txt', 'comiste.txt', 'comisteis.txt', 'comi\xc3\xa9ramos.txt', 'comi\xc3\xa9remos.txt', 'comi\xc3\xb3.txt', 'como.txt', 'com\xc3\xa1is.txt', 'com\xc3\xa9is.txt', 'com\xc3\xad.txt', 'com\xc3\xada.txt', 'com\xc3\xadais.txt', 'com\xc3\xadamos.txt', 'com\xc3\xadan.txt', 'com\xc3\xadas.txt', 'comer\xc3\xa1.txt', 'comer\xc3\xa9.txt', 'comer\xc3\xada.txt', 'comer\xc3\xadais.txt']
print "********what we have*********"
i=0
for f in group:
group[i] = os.path.basename(f)
group[i] = unicode(group[i], "utf-8")
print group[i]
i += 1
wantedResults = []
print "********what we want*********"
for(path, dirs, files) in os.walk("C:\corpus\zz-auto generated\spanish\comer"):
wantedResults.append(files)
for f in wantedResults[0]:
print f
print "********problems*********"
for resultWanted in wantedResults[0]:
if resultWanted not in group:
print "did not match our wanted results: " + resultWanted
for result in group:
if result not in wantedResults[0]:
print "extra file: " + result
我收到了这个错误:
警告(来自警告模块): 文件“C:\ Users *** \ Desktop \ osWalkTest.py”,第26行 如果结果不在wantedResults [0]: UnicodeWarning:Unicode等同比较无法将两个参数都转换为Unicode - >将它们解释为不等等
我真的可以使用一些帮助从os.walk中获取预定义数组和数组以进行正确比较。我已经在谷歌上看了这个,并尝试过对这两个阵列进行编码和解码的许多组合,但似乎没有任何效果。感谢。
答案 0 :(得分:1)
您是否尝试过(请注意字符串前面的“u”,将其转换为Unicode):
for(path, dirs, files) in os.walk(u"C:/corpus/zz-auto generated/spanish/comer"):
(请注意,在字符串中使用反斜杠不是一个好主意,不管是不是Unicode。)