2016-10-03 7 views
-2

私は数百行のコードを持つPythonファイルを持っています。最長行は146文字です。サブライムテキスト内のファイル全体の中で#をカラム200にどのように置くことができますか? 1つまたは2つのSublime Textコマンドを使用するのが望ましいですか?崇高な文章:列の位置に文字を追加

1 200

print("Hello world!") #

+0

列200ではどういう意味ですか? 200文字よりも小さい空白行でいっぱいにしたいですか? – BPL

+0

@BPL私は元の質問にいくつかの行を追加して、より良い例を提供したいと思っています。私は上記の真のカラム200の位置に '#'をつけず、単に私が尋ねようとしたことを視覚的に示すために上に移動しました。 – user2715877

+0

これはSublime Textと何が関係していますか? – MattDMo

答えて

1

あなたはこのような何かを試すことができます。これは新しいファイルに書き込まれていることに注意してください:これはただの行の末尾に「#」を追加しなければならないこと

data = [] 
with open('data.txt', 'r') as f: 
    data = [line[:-1] + ' ' * (200 - len(line)) + '#\n' for line in f] 

with open('new_data.txt', 'w') as f: 
    f.writelines(data) 

注:あなたは私はそれが既存のファイルを上書きするように変更したい場合は私に知らせて(関係なく、列番号の)行の長さ> = 200

0

ここ可能な解決策かどう:

N = 200 
output = [l.rstrip() for l in f] 
output = ["{0}#{1}".format(
    l[:len(l[:N])] + ' ' * (N - len(l[:N])), l[N:]) for l in output] 

print("\n".join(output)) 

か異なり書き込ま:

N = 200 
output = [] 
for l in f: 
    l = l.rstrip() 
    l1 = len(l[:N]) 
    output.append("{0}#{1}".format(l[:l1] + ' ' * (N - l1), l[N:])) 

print("\n".join(output)) 
関連する問題