我是python新手,目前我正在試圖找出如何使用打開多個文件。從這裏發佈的過去的問題看來,大多數人似乎只打開一個文件,我用它作爲示例代碼的基礎。我的示例代碼:使用argparse打開兩個文件
import sys
import argparse
parser = argparse.ArgumentParser(description="Compare two lists.")
parser.add_argument('infile1', type = file)
parser.add_argument('infile2', type = file)
parser.add_argument('--same', help = 'Find those in List1 that are the same in List2')
parser.add_argument('--diff', help = 'Find those in List2 that do not exist in List2')
parser.parse_args()
data1 = set(l.rstrip() for l in open(infile1))
data2 = set(l2.rstrip() for l2 in open(infile2))
什麼是使用在兩個文本文件的正確方法是什麼? '-h'按預期工作,但除此之外,我收到一個錯誤,說error: argument --same: expected one argument
。
P.S.最後,我將取代這兩個命令集與/開放
'argparse'提供了一個'FileType'類使用代替'type'參數的'file',這有兩個好處:你可以指定文件是否打開以供讀取或寫入,並且可以使用「 - 」作爲標準輸入或標準輸出的同義詞取決於我在文件模式下)。 – chepner
如果你想使用'with ... open',不要使用'FileType'。只需接受一個文件名(字符串)。對於簡單的腳本使用,「FileType」可以使用,但在文件使用更加繁瑣時會失敗。這個主題有幾個Python bug_issues。 – hpaulj