可以通过以下方式从字符串创建原始字符串:
test_file=open(r'c:\Python27\test.txt','r')
如何从字符串变量创建原始变量,例如
path = 'c:\Python27\test.txt'
test_file=open(rpath,'r')
因为我有一个文件路径:
file_path = "C:\Users\b_zz\Desktop\my_file"
当我这样做时:
data_list = open(os.path.expandvars(file_path),"r").readlines()
我得到:
Traceback (most recent call last):
File "<pyshell#32>", line 1, in <module>
scheduled_data_list = open(os.path.expandvars(file_path),"r").readlines()
IOError: [Errno 22] invalid mode ('r') or filename: 'C:\\Users\x08_zz\\Desktop\\my_file'
一旦在过程中创建了字符串,就不存在“原始字符串”这样的东西。指定字符串的
""
和r""
方法只存在于源代码本身中。这意味着
"\x01"
将创建一个由一个字节0x01
组成的字符串,但是r"\x01"
将创建一个由4个字节'0x5c', '0x78', '0x30', '0x31'
组成的字符串。(假设我们正在讨论Python2并暂时忽略编码)。您在注释中提到要从用户获取字符串(这里的gui或控制台输入都是一样的)-在这种情况下,字符串转义将不会被处理,因此您无需对此做任何操作。你可以像这样轻松地检查它(或者不管windows的等价物是什么,我只说*nix):
我将字符串转换为原始字符串的解决方案(仅适用于以下序列:'\a',\b','\f','\n','\r','\t','\v'。所有转义序列的列表是here):
演示:
ndpu的解决方案对我有效。
我无法抗拒增强它的诱惑(使它与古老的Python2版本兼容,并希望加快速度):
我做了一个仔细的时间测试,结果发现ndpu的原始代码要快一点。列表理解很快,但生成器表达式更快。
相关问题 更多 >
编程相关推荐