python - 如何从 python 中的字符串变量创建原始字符串?

标签 python string rawstring

您可以通过这种方式从字符串创建原始字符串:

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'。 (假设我们正在谈论 python 2 并暂时忽略编码)。

您在评论中提到您正在从用户那里获取字符串(无论是 gui 还是控制台输入在这里都一样) - 在这种情况下将不会处理字符串字符转义,因此您无需做任何事情它。您可以像这样轻松地检查它(或者任何等效的 Windows,我只会说 *nix):

% cat > test <<EOF                                             
heredoc> \x41
heredoc> EOF
% < test python -c "import sys; print sys.stdin.read()"
\x41

关于python - 如何从 python 中的字符串变量创建原始字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21605526/

相关文章:

c++ - 为什么原始字符串文字的分隔符必须小于 16 个字符?

c++ - 为什么在尾部反斜杠之前解析原始字符串文字?

python - 在 Ubuntu 16.04 上安装 Tensorflow

python - 在 python 中实现高效的固定大小 FIFO

python - 时间和空间复杂度比较 : adding elements of two lists to a dict through loop or dict(zip(s, t))

string - 如何在不复制的情况下将两个字符串连接成第三个字符串?

r - 带有 str_detect R 的多个字符串

Python - 原始字符串文字

python - Matplotlib:与图像不一致的结果

string - 如何使用 Go 将格式化字符串打印到标准输出中的同一行?