我有一个包含大量文本文件的文件夹。我有以下代码在执行时打开其目录中的所有文本文件,并将它们全部放在主文本文件中," result.txt"。
public static int getScreenWidth(Context context) {
if (screenWidth == 0) {
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
screenWidth = size.x;
}
return screenWidth;
}
我不希望此脚本打开" result.txt"。除result.txt之外的所有文本文件。我怎样才能做到这一点?我不希望它通过将其内容写入自身来复制result.txt
答案 0 :(得分:3)
使用filter
功能:
read_files = filter(lambda f : f != 'result.txt', glob.glob('*.txt'))
答案 1 :(得分:2)
好吧,你可以在遍历所有文件时过滤result.txt:
import glob
read_files = glob.glob("*.txt")
with open("result.txt", "wb") as outfile:
for f in (file for file in read_files if file != "result.txt"):
with open(f, "rb") as infile:
outfile.write(infile.read())
或者,为了防止在read_files
列表的进一步使用中出现错误,您可以在glob.glob之后从中删除"result.txt"
:
read_files = glob.glob("*.txt")
try:
read_files.remove("result.txt")
except ValueError: #File result.txt does not exist yet
pass
答案 2 :(得分:1)
您可以使用continue
跳过该文件并开始循环的下一次迭代:
for f in read_files:
if f == "result.txt":
continue
...
或者,在开始循环之前过滤文件列表:
read_files = [f for f in glob.glob("*.txt") if f != "result.txt"]