このタイプの質問は数回尋ねられましたが、まったく同じシナリオを見つけて、Python 3を使用しているようです私の場合)pythonを使用して新しい行の各行の差分を新しい行に出力する行を2つ比較する012
私は2つのファイルtxtまたはcsvを持っています。私は各行を比較し、その差異を新しいファイルの新しい行に出力する必要があります。
これまで私が試したことは、これは近づいていますが、それぞれの行の違いを新しい行にする方法を理解できません。新しい行や新しい行をすべて1行にすることしかできないようです。
a = open('test1.txt').read().split()
b = open('test2.txt').read().split()
c = [x for x in b if x not in a]
open('test3.txt', 'wt').write('\n'.join(c)+'\n')
\ nは.joinはすべての単語新しい行を作成する前に、私は同じ行に1行からのすべての違いをしたい、それぞれの違いに新しい行を望んでいません。 私はそれが理にかなっていることを願っています。
例: test1.txtという:
how are you
I am well
all is good
test2.txtという名前:
how are you
I like toys
all is not well
出力: test3.txt
am well
good
私はCSVのためにこのコードをも試みました私は間違いがない。
import csv
f1 = open ("test1.csv")
oldFile1 = csv.reader(f1)
oldList1 = []
for row in oldFile1:
oldList1.append(row)
f2 = open ("test2.csv")
oldFile2 = csv.reader(f2)
oldList2 = []
for row in oldFile2:
oldList2.append(row)
f1.close()
f2.close()
print [row for row in oldList1 if row not in oldList2]
私はこのエラーを取得する:私は、私にはその関連はバージョン3.5であることと、このコードは2.7用に書かれたと思いますか?
File "test3.py", line 18
print [row for row in oldList1 if row not in oldList2]
^
SyntaxError: Missing parentheses in call to 'print'
あなたの最初のコードの問題は、あなたが空白(改行だけではなく)して、ファイルを分割しますあなたのファイルの分割全体であるということです、あなたの助けを
その同じ行にすべてを置く。行の差分出力で正しい行を出力していない '/'を '/'と置き換えた場合 – moore1emu
@ moore1emu固定;-)、解決すると答えが受け入れられます。 – Kasramvd
すごく、最後に+ \ nする必要があるのかしらと思っていました。あなたは素晴らしいです、迅速な対応に感謝します。ファイルがcsvの場合も同様ですか? – moore1emu