我正在编写一个逐行分析大型目录文本文件的程序。在这样做时,我试图提取文件的不同部分并将它们分类为“名称”、“地址”等。但是,由于文件的格式,我遇到了问题。我拥有的一些文本分为两行,例如:
'123 ABCDEF ST
APT 456'
我怎样才能做到这一点,即使通过逐行分析,Python也会以单行字符串的形式返回它
'123 ABCDEF ST APT 456'
?
我正在编写一个逐行分析大型目录文本文件的程序。在这样做时,我试图提取文件的不同部分并将它们分类为“名称”、“地址”等。但是,由于文件的格式,我遇到了问题。我拥有的一些文本分为两行,例如:
'123 ABCDEF ST
APT 456'
我怎样才能做到这一点,即使通过逐行分析,Python也会以单行字符串的形式返回它
'123 ABCDEF ST APT 456'
?
如果要删除换行符:
"".join( my_string.splitlines())
假设您使用的是 Windows,如果您将文件打印到屏幕上,您将看到
'123 ABCDEF ST\nAPT 456\n'
代表\n
换行符。
所以有很多方法可以去掉文件中的新行。一种简单的方法是在换行符上拆分字符串,然后从列表中重新加入将在您进行拆分时创建的项目
myList = [item for item in myFile.split('\n')]
newString = ' '.join(myList)
用空格替换换行符:
address = '123 ABCDEF ST\nAPT 456\n'
address.replace("\n", " ")
import re
def mergeline(c, l):
if c: return c.rstrip() + " " + l
else: return l
def getline(fname):
qstart = re.compile(r'^\'[^\']*$')
qend = re.compile(r'.*\'$')
with open(fname) as f:
linecache, halfline = ("", False)
for line in f:
if not halfline: linecache = ""
linecache = mergeline(linecache, line)
if halfline: halfline = not re.match(qend, line)
else: halfline = re.match(qstart, line)
if not halfline:
yield linecache
if halfline:
yield linecache
for line in getline('input'):
print line.rstrip()
假设您正在使用以下内容迭代您的文件:
with open('myfile.txt') as fh:
for line in fh:
# Code here
并且还假设您的文本文件中的字符串用单引号分隔,我会这样做:
while not line.endswith("'"):
line += next(fh)
不过,这是很多假设。
我想我可能已经找到了一个简单的解决方案,只需将其放入.replace('\n', " ")
您要转换的任何字符串
你有的例子
my_string = "hi i am an programmer\nand i like to code in python"
喜欢任何东西,如果你想转换它,你可以做
my_string.replace('\n', " ")
希望能帮助到你