基本的に私は字幕プロジェクトをやっています。 非常に複雑な、しかし、私はちょうど、変換ASSファイル内のすべての行の行の後に行を挿入したい(現在はまだ実験でtxtファイル)字幕プロジェクト:どのようにユニコードの読み込みの失敗を解決するには?
Untouched lines. I won't talk about Aegisub problems here
対話:0,0:00 :00.00,0:00:03.90、Default ,, 0,0,0、、こんにちは、ビューア。これはリアセンブラ、ある
対話:0,0:00:03.90,0:00:07.04、デフォルト,, 0,0,0、我々は彼らの部品の形で日常のオブジェクトを取るショー
Dialogue:0,0:00:07.04,0:00:10.24、Default ,, 0,0,0、、そしてそれらを一緒に戻すのが非常にゆっくりです。
目的: '\N{\3c&HAA0603&\fs31\b1}'
対話を付加対話セクションのすべての行:0,0:00:00.00,0:00:03.90、デフォルト,, 0 、0,0、、こんにちは、視聴者。これは\ Nリアセンブラ、ある{\ 3C & & HAA0603 fs31の\ B1を\}
ダイアログ:0,0:00:03.90,0:00:07.04、デフォルト,, 0,0,0、ショー我々は、それらのコンポーネント形式の\ Nで日常のオブジェクトを取るここで、{\ 3C & & HAA0603 \ fs31の\ B1を}
ダイアログ:0,0:00:07.04,0:00:10.24、デフォルト,, 0,0,0 ,,と非常にゆっくりと、戻って一緒にそれらを置く\ N {\ 3C & HAA0603 & fs31の\ b1の\}
のPython 3.xのコード:。
text1 = open('d:\Programs\sub1.txt','r')
text2 = open('e:\modsub.ass','w+')
alltext1 = text1.read()
lines = alltext1.split('\n')
for i in range(lines.index('[Events]')+1,len(lines)):
lines[i] += ' hello '
print(lines)
text2.write(str(lines))
text1.close()
text2.close()
1.Pythonは、出力に影響を与えることなく、それに対処する方法
'\N{\3c&HAA0603&\fs31\b1}'
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-23: unknown Unicode character name
ユニコードでは、明らかに、その内の1つのまたは2つの文字を認識しませんか?
「対話:0,0:00:07.04,0:00:10.24、デフォルト,, 0
たら、2.私は字幕コードの代わりに 'ハロー' 使用、出力は次ました、0,0、、そしてそれらを一緒に、非常にゆっくり戻してください。 hello '、' Dialogue:0,0:00:10.24,0:00:11.72、Default ,, 0,0,0、それはとてもいい感じです。 hello '、' Dialogue:0,0:00:11.72,0:00:13.36、Default ,, 0,0,0、、Oh、yes。あれ見てよ! hello '、
などのように、行の後の行の代わりに配置できます。 弦をちょうど整列させて引用符をつけていく方法は?
このコードでは、 'unicodeescape'コーデックを使用するものはありません。すべてのコードを共有していますか? –
@MarkRansom文字列リテラル ''\ N {\ 3c&HAA0603&\ fs31 \ b1}'は、無効なユニコード名のエスケープであるため、このエラーが発生します。いずれにしても、Opはおそらく '' hello ''で置き換えられたはずなので、デバッグは難しい問題になります。 – Bakuriu
@Bakuriuはそれをありがとう、それは私を解決にまっすぐに導いた。 Pythonインタプリタ自体が文字列リテラルをデコードしようとしていたことは私には決してありませんでした! –