关于python中什么时候必须用转义符'\'和什么时候可以用转义符以及什么时候不可以用转义符的问题

比如这段代码:

import os
a = open('D:\迅雷下载\str.txt','r')
text = a.read()
print(os.getcwd())
print('text now is:\n',text)

b =open('C:\\Users\\Administrator\\Desktop\\str.txt','r')
for each in b:
    print(each)

c = open('C:\\Users\\Administrator\\Desktop\\str.txt','r')
for each in c.readlines():
    print (each)


d = open('C:\Documents and Settings\Administrator\桌面\str.txt','a')
d.write('\na new line')
d.close()


e = open('D:\python work\Temp folder\str.txt','r')
for each in e.readlines():
    print (each)


file_name = os.getcwd()+'\\'+'str.txt'
print(file_name)
f = open(file_name,'r')
for each in f:
    print (each)


文件对象a的每一个字符都是手动敲进去的,可以顺利执行

文件对象b里的open里的引号括起来的那段是在win10系统下用getcwd()方法从IDLE里考出来的。如果不加转义符就会报错,显示内容是unicode出错:unicodeescaper cannot decode.

文件对象c的路径是从win10系统的文件管理器里考进去的,文件名是手敲的,如果不加转义符也会报错

文件对象d的路径是从xp系统的文件管理器考进去的,文件名是手敲的,不加转义符没有问题

文件对象e的路径是在win10系统里的文件管理器考进去的,但是目标文件在D盘,可以顺利执行。

file_name的值是win10下的‘C:\Users\Administrator\Desktop\str.txt’,虽然这个路径也是在C盘下的,但是由于它是通过os.getcwd()方法得到的所以也不会报错。


所以目前得到的结论就是:

对于win10系统而言,C盘的路径无论手敲还是复制粘贴过来的都要加转义符,但是通过os.getcwd()方法得到的只需要对链接文件名的那个斜杠'\\'加转义符,D盘的路径不需要增加转义符,python在编译的时候会自动帮你加上转义符


对于xp系统而言,不需要增加路径的转义符,python在编译的时候会自动帮你加上转义符。



===============================================================

import os

path_01 = 'D:\python work\Targets\Liberary'

files = os.listdir(path_01)


#对于win10系统而言,D盘的目录处都可以直接用单斜杠,但是结尾处如果有斜杠,就必须得加一个转义符 不然就会报错


===============================================================



最后,再加一个鸡零狗碎的东西,就是当文件打开方式是‘a’而不是‘r’时,执行打印文件会报错,显示内容是not readable。要想打印文件内容,必须先关闭文件,然后以读的方式打开。

你可能感兴趣的:(关于python中什么时候必须用转义符'\'和什么时候可以用转义符以及什么时候不可以用转义符的问题)