类似于:
import fileinput
for lines in fileinput.FileInput("test.txt", inplace=1):
lines = lines.strip()
if lines == '': continue
print lines
但stdout上什么也没印。
假设有一个名为foo
的字符串:
foo.lstrip() # to remove leading white space
foo.rstrip() # to remove trailing whitespace
foo.strip() # to remove both lead and trailing whitespace
您看不到来自
print
语句的任何输出,因为FileInput
在给定关键字参数inplace=1
时将stdout
重定向到输入文件。这会导致输入文件被有效地重写,如果您事后查看它,其中的行将确实没有尾随或前导空格(除了print
语句添加回来的每个行尾的换行符)。如果只想删除尾随空白,应该使用
rstrip()
,而不是strip()
。还要注意,if lines == '': continue
会导致空白行被完全删除(无论使用的是strip
还是rstrip
)。除非您的目的是重写输入文件,否则您可能只需使用
for line in open(filename):
。否则,您可以使用如下方法同时将输出回送到sys.stderr
来查看写入文件的内容:fileinput
似乎用于多个输入流。这就是我要做的:如果您希望整理PEP8,这将为整个项目修剪尾随空白:
相关问题 更多 >
编程相关推荐