質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

249閲覧

python txtファイルに一行ごと文字を追加したい

kun_monimoni

総合スコア26

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/08/11 06:06

編集2022/08/11 06:41

実現したいこと

以下に示す例のようにa.txtを読み込み、一行ごとに文字を追加して更新を行いたいのですが、pythonで行う方法がわからないため教えていただけると幸いです。
よろしくお願いいたします。

a.txt(更新前)

1a 2b 3c 4d

a.txt(更新後)

1a.py 2b.py 3c.py 4d.py

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1T2R3M4

2022/08/11 06:58

調べたこと、試したことを質問に追記していただけませんか。
guest

回答2

0

解決済みですが、アイデアがあるので回答します。
一時ファイルを作ってコピーする方法にすると取り回し易いのかなと思いました。

Python

1import shutil 2import tempfile 3 4 5dst_file = 'a.txt' 6 7with open(dst_file, mode='r') as fin_out, \ 8 tempfile.NamedTemporaryFile(mode='w', delete=False) as ftmp: 9 10 for line in map(str.rstrip, fin_out): 11 print(f'{line}.py', file=ftmp) 12 13shutil.move(ftmp.name, dst_file)

大したサイズで無いのであれば、解決方法のとおりメモリ上で捌いても充分とは思います。
ちょっと綺麗にするならこんな感じ。

Python

1file_path = 'a.txt' 2 3with open(file_path) as fin: 4 lines = [ 5 '{}.py'.format(line) for line in map(str.rstrip, fin) 6 ] 7 8with open(file_path, 'w') as fout: 9 print(*lines, sep='\n', file=fout)

投稿2022/08/12 06:07

LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

以下のように、配列に読み込んで更新し上書きすることで解決することができました。

python

1file_path = "aaa.txt" 2with open(file_path) as f: 3 lines = f.readlines() 4lines = [line.rstrip('\n') for line in lines] 5f.close() 6print(lines) 7for i in range (len(lines)): 8 lines[i] = lines[i] + '.py' 9with open('aaa.txt', 'w') as f: 10 for d in lines: 11 f.write("%s\n" % d)

投稿2022/08/11 09:12

kun_monimoni

総合スコア26

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問