1

我有以下代码:基本上我正在做的是寻找一个 .csv 文件,该文件可能位于两个位置之一(或更多取决于)我在文本文件中有两个特定位置(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

正在执行的代码如下: - 请在回复时考虑周到,因为我是一个'新手'python程序员!

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 回答