我正在尝试使用Python读取.m文件中的文本,并且当我使用file.readline()时,Python会继续读取.m文件中的单个字符作为一行。在将行添加到列表之前,尝试删除该行的某些部分也遇到了问题。
我已经尝试过为设置的循环调整readline的位置,因为我必须在程序中读取多个文件。不管我放在哪里,字符串总是以字符分隔。我是Python的新手,所以我正在努力学习如何做。
# Example of what I did
with open('MyFile.m') as f:
for line in f:
text = f.readline()
if text.startswith('%'):
continue
else:
my_string = text.strip("=")
my_list.append(my_string)
这只是部分起作用,因为它仍然会返回我不需要的行的一部分,并且当尝试通过在输出的新行之间放置空格来格式化输出时,如下所示: 预期:“字符串” 发生了什么:“ Thr e S t r i n g”
答案 0 :(得分:2)
没有输入文件,我不得不在这里做出一些猜测
输入文件:
%
The
%
String
%
解决方案:
my_list = []
with open('MyFile.m') as f:
for line in f:
if not line.startswith('%'):
my_list.append(line.strip("=").strip())
print(' '.join(my_list))
readLine()调用是不必要的,因为for循环已使您获得该行。空的if被否定,只能捕获您关心的部分。没有您的实际输入文件,我将无法帮助'='部分。如果您有任何疑问,我们很乐意为您提供进一步的帮助。
答案 1 :(得分:0)
如Xander所建议,您不应该调用readline,因为for line in f
会为您这样做。
my_list = []
with open('MyFile.m') as f:
for line in f:
line = line.strip() # lose the \n if you want to
if line.startswith('%'):
continue
else:
my_string = line.strip("=")
my_list.append(my_string)