我正在windows 10计算机上使用python上的openpyxl库,并尝试加载带有空格的工作簿

我正在windows 10计算机上使用python上的openpyxl库,并尝试加载带有空格的工作簿,python,windows,path,whitespace,openpyxl,Python,Windows,Path,Whitespace,Openpyxl,我正在windows 10计算机上使用python 3.5上的openpyxl库,并尝试加载带有空白的路径名 我已经在网上查过了,但我自己似乎无法解决这个问题。我在下面列出了我的一些尝试 我肯定完全遗漏了什么,因为我找不到其他人询问openpyxl的这个特殊问题 任何帮助都将不胜感激 我目前的解决方法是使用python检查并可能重命名文件以删除空格,但这似乎完全没有必要,而且我可能并不总是有这样做的权限 import openpyxl from openpyxl import load_work

我正在windows 10计算机上使用python 3.5上的openpyxl库,并尝试加载带有空白的路径名

我已经在网上查过了,但我自己似乎无法解决这个问题。我在下面列出了我的一些尝试

我肯定完全遗漏了什么,因为我找不到其他人询问openpyxl的这个特殊问题

任何帮助都将不胜感激

我目前的解决方法是使用python检查并可能重命名文件以删除空格,但这似乎完全没有必要,而且我可能并不总是有这样做的权限

import openpyxl
from openpyxl import load_workbook
import os

docName = "space book.xlsx"
docNameWithExits = "space^ book.xlsm"
fullPathOfDocument =  "./" + docName
fullPathOfDocumentExtraPar = "'" + "./" + docName + "'"
fullOsPath =  os.path.join("." , docName)
docObject = open(fullPathOfDocument,"rb")

try:
    attempt1 = load_workbook(docName)
    print("worked")
except:
    print("didnt work")

try:
    attempt2 = load_workbook(fullPathOfDocument)
    print("worked")
except:
    print("didnt work")

try:
    attempt3 = load_workbook(fullPathOfDocumentExtraPar)
    print("worked")
except:
    print("didnt work")

try:
    attempt4 = load_workbook(docNameWithExits)
    print("worked")
except:
    print("didnt work")

try:
    attempt5 = load_workbook(fullOsPathvar)
    print("worked")
except:
    print("didnt work")

try:
    attempt6 = load_workbook(docObject)
    print("worked")
except:
    print("The computer has won")
提前感谢您的帮助 当做 -Nex

openpyxl.load_workbook()可以读取包含空格的路径。在我的完全可复制示例中,工作簿名称和文件夹中有空格

我猜如果字符串前面没有“r”,就会出现问题。“r”将告诉python将给定字符串视为原始字符串

import os
from openpyxl import Workbook
from openpyxl import load_workbook

# Path to be created - please change to your desired folder location
path = r"C:\Users\doe_j\test\python\a path\with spaces"
wb_name = path + r"\space book.xlsx"

if os.path.isdir(path) != True:
    os.makedirs(path)
    print(path, "created!")
elif os.path.isdir(path) != False:
    print(path, "already exists!") 


# making a workbook so this example is reproducible
wb = Workbook()
ws = wb.active

ws["A1"] = "Putting some text in"

wb.save(wb_name)

# loading that same workbook 
wb = load_workbook(wb_name)
ws = wb.active

ws["A3"] = "Adding Some more text in"

wb.save(wb_name)

此示例在windows 10、python 3.5和openpyxl 2.4.7上进行了测试。

噢,非常感谢!我不确定出了什么问题。我想它是指带有“/”的程序路径,但我只使用了os.path.join(os.getcwd(),fileName)./以前一直工作,直到我使用您的代码将文档名称与空格一起用作示例,我使其适用于路径中带有空格的任意文档感谢您花时间提供解决方案,但现在load_工作簿正在查找我关心的实际文件上的zip文件。我认为XML结构不同,因为它是从SQL数据库输出的。。。。旅程还在继续谢谢你