Python 断开大字符串的正确方法

Python 断开大字符串的正确方法,python,string,readability,Python,String,Readability,我必须编写一个应用程序,在文件/数据库中搜索一些常量字符串(他们还没有告诉我是哪个字符串,这对本文来说真的不重要)。 无论如何,这些字符串往往很长(有时超过200个字符),即使有一个相当大的显示器,也会开始从屏幕上滚动(好吧,我也会同时打开多个窗口)。无论如何,出于可读性的原因,我想拆分字符串,所以我考虑用一堆换行符三次引用这个傻瓜,但三次引用保留了换行符。 我想我能行 myStr = """some long string""".replace('\

我必须编写一个应用程序,在文件/数据库中搜索一些常量字符串(他们还没有告诉我是哪个字符串,这对本文来说真的不重要)。
无论如何,这些字符串往往很长(有时超过200个字符),即使有一个相当大的显示器,也会开始从屏幕上滚动(好吧,我也会同时打开多个窗口)。无论如何,出于可读性的原因,我想拆分字符串,所以我考虑用一堆换行符三次引用这个傻瓜,但三次引用保留了换行符。
我想我能行

myStr = """some
           long
           string""".replace('\n', '')
但是我担心有一天他们可能会要求我在myStr的
myStr
中添加新行,所以这是一个失败。否则,每次程序运行时都必须执行
.replace(…)
,这是不高效的。出于同样的原因,以下措施也不起作用:

myStr = "some" + \
        "long" + \
        "string"
因此,我想知道还有什么替代方法,可以分解一个很长的字符串,同时牢记可读性和代码效率


Python 2.7和3.3的兼容性是一个加号,这是一个基于观点的主题,但我想提出一个不同的解决方案:用这些字符串创建一个资源文件,并用可读的键名引用它们

您可以找到一个示例解决方案

另一种简单化的可能性是仅使用以下资源字符串创建Python模块:

resources.py

longString1 = "......."

longString2 = "......."

#...

然后在代码中使用它们,如
resources.longString1
。当它们在一个只包含资源的单独文件中分离时,无论您选择何种格式,可读性都不会有问题。

我经常在代码中这样做(符合PEP8):


括号只是将表达式计算为一个字符串。

如果要寻找替代方法,请尝试以下方法:

string = "some long string"
string_list = string.split(' ') #The space here can be replaced with whatever you
                                #would like to split your string by may it be /n
                                #or whatever else. This method returns a list of
                                #strings.
'/n'.join(string_list) #This will rejoin your string back together with newlines
                       #where the spaces used to be. Again /n can be replaced

我很难想象你到底是什么意思。你能举个例子吗?+1,混合代码和数据很少是个好主意。@inspectorG4dget我已经添加了更多的解释。哦,那/是/是个好主意(完全不是我从第一次阅读中得到的)+1是否在编辑中启用换行?:实际上,只要将两个字符串文字放在一起,就可以将它们连接在一起,括号允许将它们放在多行上。但这就是解决方案,如果将字符串作为文本放入Python文件中是最好的。正确:)它解决了级联、分组和PEP8所有问题:)问题是我不能将
“一些长字符串”
放在一行上。您要求使用替代方法,我给了您一个。阅读注释,您可以使用这些方法将字符串按所需的字符串片段拆分,并将其与所需的字符串片段重新组合在一起。如果愿意的话,你可以用单词“long”来拆分字符串(这将返回[some,string]问题是
“一些长字符串”
一行文字会让我读不懂它。我在帖子中提到了这一点,并询问建议的替代方法应该有助于提高效率和可读性
string = "some long string"
string_list = string.split(' ') #The space here can be replaced with whatever you
                                #would like to split your string by may it be /n
                                #or whatever else. This method returns a list of
                                #strings.
'/n'.join(string_list) #This will rejoin your string back together with newlines
                       #where the spaces used to be. Again /n can be replaced