1

私は次のコードを持っています:基本的に私がやっていることは、.csvファイルを探しています。これは、2つの場所のいずれかにある可能性があります(またはそれ以上の場所にある可能性があります)テキストファイルに2つの特定の場所があります(LocationsFile.txt).

このうち、学生の特定のフィールドのみを取得したい: これは SSID Field

次のコードがありますが、次のようなエラーが表示されます。

    Tape Name130322
['\\\\....HIDDEN FOR Confidenciality .....StudentDB1_av.csv']
Success:
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python27\lib\lib-tk\Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "C:\Users\Administrator\Desktop\John\Spreadsheet\Gui.py", line 291, in run
    findStudentData('130322','StudentDB1')
  File "C:\Users\Administrator\Desktop\John\Spreadsheet\Gui.py", line 62, in findStudentData
    with open(items) as f:
TypeError: coercing to Unicode: need string or buffer, list found

実行中のコードは次のとおりです。

def findStudentData(student_name,course):
student_name= student_name.lower()
configfiles = []

print "student_name" + student_name
for path in MMinfo_paths:
    configfiles.append(glob.glob(path+"/" + course+"*"))

for items in configfiles:
    print items
    print "Success:"
    heading = True

    with open(items) as f:
        content = f.read()

        if heading == True
            ssidCol = content.index('ssid')
            flagsCol = content.index('flags')
            nameCol = content.index('name')
            heading = False
            continue



        for item in rowData:
            if rowData.index(item) == nameCol:
                print rowData
            else:
                continue

どうもありがとう :-)

4

2 に答える 2

2

現在、構成ファイルは次のようになっています。

[[file1, file2], [file3, file4]]

これを行うことができます:

for items in configfiles:
    for filename in items:
        with open(items) as f: ...

または、configfiles.append を configfiles.extend に置き換えることができます。Append は glob によって返されたリストを configfiles リストの要素として追加しますが、extend は glob によって返されたリストの各要素を configfiles リストに追加します。次に、構成ファイルは次のようになります。

[file1, file2, file3, file4]

そして、あなたはただ書くことができます:

for items in configfiles:
    with open(items) as f: ...
于 2013-06-18T20:39:56.480 に答える
1

itemsはコードのリストです。代わりに文字列にする必要があります。

関数はglob.globリストを返すため、configfiles変数はリストのリストです。

for items in configfiles:
    print items        # items is a list here
    print "Success:"
    heading = True

    with open(items) as f:  # list instead of string here, is incorrect.
于 2013-06-18T19:23:12.730 に答える