【发布时间】:2012-07-26 15:12:29
【问题描述】:
我有以下代码,旨在删除文件的特定行。当我运行它时,它会打印目录中的两个文件名,然后删除其中的所有信息。我究竟做错了什么?我在 Windows 下使用 Python 3.2。
import os
files = [file for file in os.listdir() if file.split(".")[-1] == "txt"]
for file in files:
print(file)
input = open(file,"r")
output = open(file,"w")
for line in input:
print(line)
# if line is good, write it to output
input.close()
output.close()
【问题讨论】:
-
注意:您应该使用
os.path.splitext来获取文件扩展名。您还应该阅读该文件,然后再写入。 -
你想写入你打开阅读的同一个文件吗?
-
@jamylak:不,正确的解决方案是迭代
glob.iglob("*.txt")。 -
@SvenMarnach 好的,但我只是想检查文件扩展名。
-
@poke,这是 for 循环内部的注释。在运行代码之前,我会在那里放一些东西。
标签: python file python-3.x