【问题标题】:Can't save data to file when opening Python script from CMD从 CMD 打开 Python 脚本时无法将数据保存到文件
【发布时间】:2020-08-29 09:16:00
【问题描述】:

我有一个简短的脚本,它接受用户输入并将其保存到电子表格中。从 CMD 打开时,它似乎运行正常,没有任何错误。但是,用户输入的数据实际上根本没有保存。 代码如下:

import openpyxl
wb = openpyxl.load_workbook('C:\\Users\\sp\\Documents\\testFolder\\testTF.xlsx')
sheet = wb.active
while True:  
    print('Enter pairs seprated with colon')
    pairList = input().split(':')
    maxRowNum = sheet.max_row
    sheet.cell(row=maxRowNum + 1, column=1).value = pairList[0]
    sheet.cell(row=maxRowNum + 1, column=2).value = pairList[1]
    wb.save('testTF.xlsx')        
    print('Pair saved\n\n') 

如果从文件资源管理器而不是 CMD 打开,脚本会按预期保存数据。但在 CMD 中,它没有。 我尝试解决的问题:

  1. 以管理员身份在 CMD 中运行脚本,而不是普通用户
  2. 取消选中父文件夹的“只读”属性
  3. 创建一个新文件夹并将脚本移入其中。
  4. 取消选中新父文件夹的“只读”属性
  5. 以管理员身份运行以下 CMD 命令:“attrib -r +s C:\Users\sp\Documents\testFolder”或“attrib -r -s C:\Users\sp\Documents\testFolder”,根据https://appuals.com/how-to-fix-folder-keeps-reverting-to-read-only-on-windows-10/ 上面的方法都不起作用。在 CMD 中运行时,脚本仍然不会将数据保存到电子表格中。我不确定出了什么问题以及如何解决这个问题。有人可以帮忙吗?我真的很感激。

【问题讨论】:

  • 使用单例,filepath = 'testTF.xlsx' ; .load_workbook(filepath) ; .save(filepath)

标签: python debugging cmd openpyxl


【解决方案1】:

您正在从一条路径读取并在另一条路径中保存。 试试:

import openpyxl
wb = openpyxl.load_workbook('C:\\Users\\sp\\Documents\\testFolder\\testTF.xlsx')
sheet = wb.active
while True:  
    print('Enter pairs seprated with colon')
    pairList = input().split(':')
    if len(pairList) < 2:
        break
    maxRowNum = sheet.max_row
    sheet.cell(row=maxRowNum + 1, column=1).value = pairList[0]
    sheet.cell(row=maxRowNum + 1, column=2).value = pairList[1]
    wb.save('C:\\Users\\sp\\Documents\\testFolder\\testTF.xlsx')        
    print('Pair saved\n\n') 

我只是测试它并且工作正常。也许你有打开的 excel 和阻止版本?

【讨论】:

  • hoo 我想我刚刚想通了。您正在一个位置阅读,并在另一个位置保存。请参阅: wb = openpyxl.load_workbook('C:\\Users\\sp\\Documents\\testFolder\\testTF.xlsx') 然后 wb.save('testTF.xlsx')
  • 试试 wb.save('C:\\Users\\sp\\Documents\\testFolder\\testTF.xlsx')
  • 不,它不起作用。事实上,testTF.xlsx 和脚本都在同一个文件夹中。两者都在 cwd 中。
  • 我只是测试它并且工作正常。也许你有开放的 Excel 和阻止版本?
  • 对不起,你说得对。从 CMD 运行脚本时 cwd 会发生变化。非常感谢你的帮助。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-03
  • 2013-02-07
相关资源
最近更新 更多