Python读写循环回溯错误

时间:2019-01-21 15:22:48

标签: python

我得到如下回溯:

expected an indented block col += 1" and "IOError: [Errno 13] Permission denied"

取决于我如何使用此代码。谁能看到任何明显的缺陷/改进?我正在尝试从软件程序中获取一些输出结果(步骤1),使用excel将输出导出到openpyxl(步骤2)

import Library
import glob
from openpyxl import load_workbook

wb = load_workbook(filename ='xxxxxx')
ws3 = wb.create_sheet('New results')

ws3['B1'] = 'Heading'   
ws3['B2'] = 'Heading'
ws3['C2'] = 'Heading'

ws3.cell(1, 3, 30)                                       
row = 3              

#Step 1: go through all files in directory and get required output from each file 

files=glob.glob('.ext')
for i,f in enumerate(files) : 
    m = Library.Model(f)
    frame = m['SoftwareModelComponent']
    TimeResult = frame.some call for resultxxxx
    DistResult = frame.some call for resultxxxx

#Step 2: send output to excel file located in same directory                                                    

for fileName in glob.glob('.ext'):
    col = 0
    with open(fileName, 'r') as f:
        for line in f:
            try:
                ws3.cell(i+row, 0, f)
                ws3.cell(i+row, 1+col, TimeResult)
                ws3.cell(i+row, 1+col, DistResult)
            except ValueError:
                print('Error') 
            col += 1
    row += 1            

wb.save('G:\\path')
wb.close('G:\\path')

2 个答案:

答案 0 :(得分:0)

“权限被拒绝”错误可能意味着您或您的程序无权在特定文件夹中写入(或读取)。 因此,当您运行该行时:

 $con = Conversation::with(['messages', 'messages.sms_status'])->paginate(15);

确认此文件夹已以书面形式打开。

希望是有帮助的。

答案 1 :(得分:0)

当您在代码中使用的文件被打开,正在被其他程序/软件使用或被其他程序/软件使用时,会出现“权限被拒绝”错误。您应该通过查看计算机上的进程来验证这一点,并找出可能使用文件(扩展名为* .ext)的文件并在运行程序之前将其终止。

对于缩进错误,您应该在col1块内增加try。该块控制着其上方的for循环执行。将col1放置在此块之外时,您将违反Python中的缩进规则,因为col1+=1for循环的控制流之外,并且没有意义:

try:
    ws3.cell(i+row, 0, f)
    ws3.cell(i+row, 1+col, TimeResult)
    ws3.cell(i+row, 1+col, DistResult)
    col +=1