使 Python 字符串成为原始字符串
Make Python string a raw string
我有以下代码:
#!/usr/bin/python
import os
from sys import exit as EXIT
File = os.path.realpath(__file__)
dir = os.path.dirname(File)
os.chdir(dir)
path_file = os.path.join(dir,"path.txt")
filo = open(path_file)
lines = filo.readlines()
if len(lines) == 1:
path = lines[0]
else:
raw_input("Too many lines... ")
EXIT()
FILE = open(path)
当我 运行 它时,我得到错误:
Traceback (most recent call last):
File "py/Zebra/zebra.py", line 20, in <module>
FILE = open(path)
IOError: [Errno 2] No such file or directory: 'C:\Users\user\file.txt'
如果路径是硬编码的,那么我可以做类似的事情
路径 = r"C:\path\to\file"
但由于变量是通过其他方法定义的,我现在不确定是否要修复此问题:(
r' '
背后的想法是写raw string literals,因为它改变了python转义字符的方式。如果它恰好是一个变量的值,正如你上面所说的,你不需要使用 r' '
因为你没有明确地写一个字符串文字。
不管怎样,我认为这样就可以了:
path = r'%s' % pathToFile
编辑:
另外,正如对问题的评论,你真的应该确定路径存在。
我有以下代码:
#!/usr/bin/python
import os
from sys import exit as EXIT
File = os.path.realpath(__file__)
dir = os.path.dirname(File)
os.chdir(dir)
path_file = os.path.join(dir,"path.txt")
filo = open(path_file)
lines = filo.readlines()
if len(lines) == 1:
path = lines[0]
else:
raw_input("Too many lines... ")
EXIT()
FILE = open(path)
当我 运行 它时,我得到错误:
Traceback (most recent call last):
File "py/Zebra/zebra.py", line 20, in <module>
FILE = open(path)
IOError: [Errno 2] No such file or directory: 'C:\Users\user\file.txt'
如果路径是硬编码的,那么我可以做类似的事情 路径 = r"C:\path\to\file"
但由于变量是通过其他方法定义的,我现在不确定是否要修复此问题:(
r' '
背后的想法是写raw string literals,因为它改变了python转义字符的方式。如果它恰好是一个变量的值,正如你上面所说的,你不需要使用 r' '
因为你没有明确地写一个字符串文字。
不管怎样,我认为这样就可以了:
path = r'%s' % pathToFile
编辑: 另外,正如对问题的评论,你真的应该确定路径存在。