打破长路径名称

时间:2013-10-01 20:10:14

标签: python python-3.x

我无法在python编译器中将路径分成两行。 它只是编译器屏幕上的一条长路径,我必须将窗口拉得太宽。我知道如何将打印(“字符串”)分成两行代码,这些代码将正确编译,但不能打开(路径)。当我写这篇文章时,我注意到文本框甚至无法将它全部保存在一行上。 打印()

`raw_StringFile = open(r'C:\Users\Public\Documents\year 2013\testfiles\test          code\rawstringfiles.txt', 'a')`

5 个答案:

答案 0 :(得分:5)

这就是\的用途。

>>> mystr = "long" \
... "str"
>>> mystr
'longstr'

或者在你的情况下:

longStr = r"C:\Users\Public\Documents\year 2013\testfiles" \
           r"\testcode\rawstringfiles.txt"
raw_StringFile = open(longStr, 'a')

修改

嗯,如果你使用括号,你甚至不需要\,即:

longStr = (r"C:\Users\Public\Documents\year 2013\testfiles"
               r"\testcode\rawstringfiles.txt")
raw_StringFile = open(longStr, 'a')

答案 1 :(得分:5)

Python只允许将它们相邻放置来连接字符串:

In [67]: 'abc''def'
Out[67]: 'abcdef'

In [68]: r'abc'r'def'
Out[68]: 'abcdef'

In [69]: (r'abc'
   ....: r'def')
Out[69]: 'abcdef'

所以这样的事情应该适合你。

raw_StringFile = open(r'C:\Users\Public\Documents\year 2013\testfiles'
                      r'\testcode\rawstringfiles.txt', 'a')

另一种选择是使用os.path.join

myPath = os.path.join(r'C:\Users\Public\Documents\year 2013\testfiles',
                      r'testcode\rawstringfiles.txt')
raw_StringFile = open(myPath, 'a')

答案 2 :(得分:2)

您可以将字符串放在括号内,如下所示:

>>> (r'C:\Users\Public\Documents'
...  r'\year 2013\testfiles\test          code'
...  r'\rawstringfiles.txt')
'C:\\Users\\Public\\Documents\\year 2013\\testfiles\\test          code\\rawstringfiles.txt'

这称为“String literal concatenation”。引自docs

  

可能是多个相邻的字符串文字(由空格分隔)   允许使用不同的引用约定,其含义是   与他们的串联相同。因此,“你好”'世界'是等价的   到“helloworld”。此功能可用于减少数量   需要反斜杠,以便在长条中方便地分割长字符串   行,甚至为部分字符串添加注释,例如:

re.compile("[A-Za-z_]"       # letter or underscore
           "[A-Za-z0-9_]*"   # letter, digit or underscore
)

另见:

答案 3 :(得分:1)

Python有一个叫做Implicit line joining的漂亮功能。

  

括号,方括号或花括号中的表达式可以在不使用反斜杠的情况下分割为多个物理行。例如:

month_names = ['Januari', 'Februari', 'Maart',      # These are the
               'April',   'Mei',      'Juni',       # Dutch names
               'Juli',    'Augustus', 'September',  # for the months
               'Oktober', 'November', 'December']   # of the year

所以对于你的问题 -

raw_StringFile = open(r'C:\Users\Public\Documents\year 2013\testfiles'
                      r'\testcode\rawstringfiles.txt', 'a')

编辑 - 在此示例中,它实际上是String literal concatenation

答案 4 :(得分:-1)

我在Windows 7上的Python 3.5中遇到了这个问题,这很有效:

imgPath = ("D:\EclipseNEON\EclipseWorkspaces\EclipsePythonWorkspace"
           "\PythonLessons\IntroducingPython\GUIs\OReillyTarsierLogo.png")

关键是至少在Windows中,给定子字符串中的最后一个字符不能是反斜杠(“\”)字符。