Доступ к CSV-файлу вне папки python - PullRequest
1 голос
/ 03 августа 2011

Так что мои файлы имеют одинаковый размер, с заголовком строки и столбца.Мне нужно добавить значения, которые находятся в остальных ячейках, кроме заголовка строки и столбца.Это функция, которую я использую для этого:

def readStructured (filename):

    # Open the file
    fd = open (filename, 'rb')

    # CSV reader
    reader = csv.reader (fd , delimiter = ',')

    # Read data into memory
    data = []
    for row in reader:
        data.append (row)

    return data

def mergeStructured (data1, data2):

    # Empty array
    ret = []

    # Append the row header
    ret.append (data1[0])

    # For rows which are _not_ the row header,
    for rowIndex in range (1, len (data1)):
        row1 = data1[rowIndex]
        row2 = data2[rowIndex]

        # The row we are working on:
        current = []

        # Append the column header
        current.append (row1[0])

        # Now append the sum of the rest of the values
        for index in range (1, len(row1)):
            current.append (float (row1[index]) + float (row2[index]))

        # And put the result in our data
        ret.append (current)

    return ret

    And then I use this to call the functions:


data = readStructured('file1.csv')
data2 = readStructured('file2.csv')
y = mergeStructured(data, data2)
targetfile = open('testing.csv', 'wb')
writer = csv.writer(targetfile)
for row in y:
    writer.writerow(row)
targetfile.close()

Это прекрасно работает.Однако file1 и file2 не находятся в папке python.Код, который мне нужно использовать: data = readStructured ('C: \ ... \ .. \ ... \ file1.csv') data2 = readStructured ('C: \ ... \ .. \ ... \file2.csv ')

Файлы точно такие же.Я открыл файлы в их C-расположении и использовал save as, чтобы сохранить их в моей папке python.Однако когда я получаю доступ к файлам в моей папке C, мой диапазон от 1 до len (row1) выходит за пределы диапазона.

Когда я получаю доступ к тем же файлам из папки python, мой диапазон от 1 до len (row1) идеален.

Есть идеи?

1 Ответ

0 голосов
/ 03 августа 2011

Файлы абсолютно одинаковые. Я открыл файлы в папке C и использовал команду save as, чтобы сохранить их в папке python.

Мне кажется, это может быть источником невидимого обращения. Добавление символа конца файла, удаление завершающего символа новой строки или чего-то в этом роде. Я бы не поверил, что файлы одинаковые, если вы не скопируете файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...