Can';从CMD打开Python脚本时,不要将数据保存到文件中
我有一个简短的脚本,它接受用户输入并将其保存到电子表格中。从CMD打开时,它似乎运行正常,没有任何错误。但是,用户输入的数据实际上根本没有保存。 代码如下:Can';从CMD打开Python脚本时,不要将数据保存到文件中,python,debugging,cmd,openpyxl,Python,Debugging,Cmd,Openpyxl,我有一个简短的脚本,它接受用户输入并将其保存到电子表格中。从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
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中,它不是。
我试图解决这个问题的事情:
您正在从一条路径阅读,并保存在另一条路径中。 尝试:
导入openpyxl
wb=openpyxl.load_工作簿('C:\\Users\\sp\\Documents\\testFolder\\testTF.xlsx')
工作表=wb.active
尽管如此:
打印('输入用冒号分隔的对')
pairList=input().split(“:”)
如果len(pairList)<2:
打破
maxRowNum=sheet.max\u行
sheet.cell(行=maxRowNum+1,列=1)。值=pairList[0]
sheet.cell(行=maxRowNum+1,列=2).value=pairList[1]
wb.save('C:\\Users\\sp\\Documents\\testFolder\\testTF.xlsx')
打印('已保存配对\n\n')
我只是测试一下,效果很好。也许你打开了excel,并屏蔽了版本?hoo我想我刚刚明白了。您在一个位置阅读,在另一个位置保存。请参阅:wb=openpyxl.load_工作簿('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会发生变化。非常感谢您的帮助。:)使用单例,
filepath='testTF.xlsx'。加载_工作簿(文件路径)。保存(文件路径)