2017-02-23 7 views
0

私が作成している.csvファイルがあり、入力ファイルを繰り返して作成しています。この質問を約ある特定の列のための私の現在のコードは次のようになります。コードの一部についてファイルから行の文字を追加する際にcsv行を追加する

input_filename = sys.argv[1] 
output_filename = sys.argv[2] 
f = open(sys.argv[3]).read() 

list.append(("A B", f[0:2], "numeric", "A B")) 

F「[0:2]」、持つのではなく、それはFとしての最初の数文字を追加します最初の数文字が追加されるたびにファイル全体が追加されるようにするには、ループが実行されるたびにfの次の行に[0:2]を追加します。私は試してみました:

list.append(("A B", f.line[0:2], "numeric", "A B")) 

と他の同様のアプローチは、役に立たない。私はこの質問がはっきりしていることを願っています。もしそうでなければ、私は明確にすることができます。この追加の行にこの規定を入れるための提案は感謝しています!

ありがとうございました!

答えて

0

あなたがここでやろうとしていることを推測するのはちょっと難しいですが、これはあなたの探しているもののようなものですか? data.txtを

abc 
def 

コードの

内容:

# I'm simply replacing your names so I can test this more easily 
input_filename = 'input.txt' 
output_filename = 'output.txt' 
data_filename = 'data.txt' 
transformed_data = [] 
with open(data_filename) as df: 
    for line in df: 
     # remove surrounding whitespace- assuming you want this 
     line = line.strip() 
     if line: # make sure there's non-whitespace characters left 
      transformed_data.append(("A B", line[0:2], "numeric", "A B")) 

print(transformed_data) 
# produces 
# [('A B', 'ab', 'numeric', 'A B'), ('A B', 'de', 'numeric', 'A B')] 

あなたは.CSVファイルで作業している場合は、私は非常にPythonのライブラリが付属していますcsvをお勧めします。あなたのエンコーディングと書式設定を処理しましょう。

+0

ありがとうございました!私はこの問題を修正することができ、csvライブラリを研究します。ご協力いただきありがとうございます! – BigBlue

+0

@BigBlue素晴らしい!私の答えがあなたを助けたら、それを受け入れて、おそらく役に立たないかもしれないが、あまりにも満足できる点を得ることができる。 Pythonの初心者なら、[標準ライブラリのこのページ](https://docs.python.org/3/library/)をお勧めします。私はそこにあるものを知るのに多くの時間を節約しました。そして、私は個々のモジュール(通常は各ページの上部にリンクされています)へのソースコードの読み方をたくさん学びました。 – Ben

+0

提案していただきありがとうございます!あなたの答えは正式に受け入れられました! – BigBlue

関連する問題