连接路径和文件名

2024-05-17 08:09:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须用python构建完整的路径。我试过这个:

filename= "myfile.odt"

subprocess.call(['C:\Program Files (x86)\LibreOffice 5\program\soffice.exe',
                    '--headless',
                    '--convert-to',
                    'pdf', '--outdir',
                    r'C:\Users\A\Desktop\Repo\',
                    r'C:\Users\A\Desktop\Repo\'+filename])

但我知道这个错误

SyntaxError: EOL while scanning string literal.


Tags: 路径libreofficeodtrepofilescallfilenameprogram
3条回答

反斜杠字符(\)必须在字符串文本中转义。

  • 这是错误的:'\'
  • 这是正确的:'\\'-这是一个包含一个反斜杠的字符串

因此,这是错误的:

'C:\Program Files (x86)\LibreOffice 5\program\soffice.exe'

有个把戏!

前缀为r的字符串文本意味着更容易编写正则表达式。它们的一个特点是反斜杠字符不必转义。所以,这没关系:

r'C:\Program Files (x86)\LibreOffice 5\program\soffice.exe'

但是,对于以反斜杠结尾的字符串,这是行不通的:

  • r'\'-这是语法错误

所以,这也是错误的:

r'C:\Users\A\Desktop\Repo\'

因此,我将执行以下操作:

import os
import subprocess


soffice = 'C:\\Program Files (x86)\\LibreOffice 5\\program\\soffice.exe'
outdir = 'C:\\Users\\A\\Desktop\\Repo\\'
full_path = os.path.join(outdir, filename)

subprocess.call([soffice,
                 '--headless',
                 '--convert-to', 'pdf',
                 '--outdir', outdir,
                 full_path])

尝试:

import os
os.path.join('C:\Users\A\Desktop\Repo', filename)

操作系统模块包含许多有用的目录和路径操作方法

要建立在zanseb所说的基础上,请使用os.path.join,但是\也是一个转义字符,因此字符串文字不能以\结尾,因为它将转义结尾的引号。

import os
os.path.join(r'C:\Users\A\Desktop\Repo', filename)

相关问题 更多 >