我正在编写一个程序,逐行分析一个大目录文本文件。在此过程中,我尝试提取文件的不同部分并将它们分类为“名称”、“地址”等。但是,由于文件的格式,我遇到了问题。我的一些文本被分成两行,例如:
'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', " ")
希望有帮助