タグ付けされた質問 「python」

Pythonは、マルチパラダイム、動的型付け、多目的プログラミング言語です。これは、学習、理解、使用が迅速で、クリーンで統一された構文を適用できるように設計されています。Python 2は2020年1月1日をもって正式にサポートされなくなりました。それでも、バージョン固有のPythonの質問については、[python-2.7]または[python-3.x]タグを追加します。Pythonのバリアントまたはライブラリ(Jython、PyPy、Pandas、Numpyなど)を使用する場合は、タグに含めてください。

7
MacRoman、CP1252、Latin1、UTF-8、ASCII間のエンコーディングを確実に推測する方法
職場では、エンコーディング関連の接続、災害、または大災害がなければ、1週間も経たないようです。この問題は通常、エンコーディングを指定せずに「テキスト」ファイルを確実に処理できると考えるプログラマーから生じます。しかし、それはできません。 したがって、今後、ファイルの末尾が*.txtまたはで終わる名前をファイルに付けることを禁止することが決定されました*.text。その考えは、これらの拡張機能により、カジュアルなプログラマーをエンコードに関する鈍い自己満足に導き、これが不適切な処理につながるということです。少なくともあなたが知っているので、それは全く拡張を持たない方がほぼ良いでしょうあなたは、あなたが持っているかわからないということ。 しかし、私たちはそれほど遠くに行くことを望んでいません。代わりに、エンコーディングで終わるファイル名を使用することが期待されます。たとえばテキストファイルの場合、これらは次のようREADME.asciiになります。README.latin1、README.utf8など、 特定の拡張子が必要なファイルの場合、PerlやPythonなど、ファイル自体の内部でエンコーディングを指定できる場合は、それを行う必要があります。そのような機能がファイルの内部に存在しないJavaソースのようなファイルの場合、次のように、エンコーディングを拡張の前に置きます。SomeClass-utf8.java。 出力の場合、UTF-8は 強く推奨されます。 しかし、入力のために、コードベースの何千ものファイルをどのように処理するかを理解する必要があります。 *.txt。すべての名前を変更して、新しい標準に合わせたいと思います。しかし、それらすべてを目にすることはできません。したがって、実際に機能するライブラリまたはプログラムが必要です。 これらは、ASCII、ISO-8859-1、UTF-8、Microsoft CP1252、またはApple MacRomanでさまざまです。何かがASCIIであるかどうかを判断できることはわかっていますが、何かがおそらくUTF-8であるかどうかを知ることには大きな変化がありますが、8ビットのエンコーディングに困惑しています。ほとんどのデスクトップがMacであるUnix混合環境(Solaris、Linux、Darwin)で実行しているため、迷惑なMacRomanファイルがかなりあります。そして、これらは特に問題です。 しばらくの間、私はプログラムでどれを決定する方法を探していました ASCII ISO-8859-1 CP1252 マクロマン UTF-8 ファイルがあり、3つの異なる8ビットエンコーディングを確実に区別できるプログラムまたはライブラリが見つかりません。おそらく、1,000以上のMacRomanファイルだけが存在するため、私たちが使用する文字セット検出器は、それらを探知できなければなりません。私が見たものは何もトリックを管理できません。ICU文字セット検出器ライブラリに大きな期待がありましたに MacRomanを処理できません。また、PerlとPythonの両方で同じ種類のことを行うためのモジュールも調べましたが、何度も繰り返しますが、MacRomanの検出はサポートされていません。 したがって、私が探しているのは、ファイルが5つのエンコーディングのどれにあるか、できればそれより多いかを確実に判断する既存のライブラリまたはプログラムです。特に、私が引用した3つの3ビットエンコーディング、特にMacRomanを区別する必要があります。ファイルは99%以上の英語のテキストです。他の言語にはいくつかありますが、多くはありません。 ライブラリコードの場合、言語設定は、Perl、C、Java、またはPythonの順で、それが単なるプログラムである場合、完全なソースで提供され、Unixで実行され、完全に邪魔にならない限り、その言語がどの言語であるかは特に問題になりません。 他の誰かがランダムにエンコードされた膨大な数のレガシーテキストファイルのこの問題を抱えていましたか?もしそうなら、それをどのように解決しようとしましたか、そしてどれほど成功しましたか?これは私の質問の最も重要な側面ですが、プログラマーにファイルの実際のエンコーディングを使用してファイルに名前を付ける(または名前を変更する)ように勧めることで、将来の問題を回避するのに役立つかどうかにも興味があります。制度的にこれを施行しようとした人はいますか?その場合、それは成功したかどうか、そしてなぜですか? そして、はい、問題の性質上、明確な答えを保証できない理由を完全に理解しています。これは特に、続行するのに十分なデータがない小さなファイルの場合に当てはまります。幸い、私たちのファイルはめったに小さくありません。ランダムREADMEファイルを除いて、ほとんどのファイルは50kから250kのサイズ範囲にあり、多くはより大きなサイズです。サイズが数Kを超えるものはすべて、英語であることが保証されています。 問題ドメインは生物医学のテキストマイニングであるため、PubMedCentralのすべてのオープンアクセスリポジトリのように、大規模で非常に大規模なコーパスを扱う場合があります。かなり巨大なファイルは5.7ギガバイトのBioThesaurus 6.0です。このファイルはほとんどすべてUTF-8であるため、特に煩わしいものです。しかし、一部の麻痺した頭蓋骨は、8ビットエンコーディングであるMicrosoft CP1252のいくつかの行に行き詰まりました。あなたがそれをトリップするまでにはかなり時間がかかります。:(

2
Pythonのソースコードを整理するにはどうすればよいですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 この質問を改善する 私はPythonを使い始めており(今こそ試してみる時期です)、いくつかのベストプラクティスを探しています。 私の最初のプロジェクトは、複数のスレッドでコマンドライン実験を実行するキューです。非常に長いmain.pyファイルを取得し始めていますが、分割したいのですが。一般的に、私が探しているのは:Pythonプログラマーはどのようにして複数のソースファイルを整理するのですか?あなたのために働く特定の構造はありますか? 私の具体的な質問は次のとおりです。 各クラスを個別のファイルに含める必要がありますか? ソースコードに関連する単体テストを整理するにはどうすればよいですか? ドキュメントのコメント、特にコマンドライン操作のコメントはどこに置くべきですか? 複数のディレクトリを使用している場合、それらの間でクラスをインポートするにはどうすればよいですか? 私はおそらく、試行錯誤によって自分の結論のいくつかをここに引き出すことができますが、むしろ良いものから始めたいと思います。




13
id()関数は何に使用されますか?
私はPython 2のドキュメントを読み、id()関数に気づきました: オブジェクトの「アイデンティティ」を返します。これは整数(または長整数)であり、このオブジェクトの存続期間中、一意であり、定数であることが保証されています。重複しない存続期間を持つ2つのオブジェクトは、同じid()値を持つことができます。 CPython実装の詳細:これは、メモリ内のオブジェクトのアドレスです。 だから、私id()はリストを使って実験しました: >>> list = [1,2,3] >>> id(list[0]) 31186196 >>> id(list[1]) 31907092 // increased by 896 >>> id(list[2]) 31907080 // decreased by 12 関数から返される整数は何ですか?Cのメモリアドレスと同義ですか?もしそうなら、なぜ整数はデータ型のサイズに対応しないのですか? いつid()実際に使用されますか?
99 python 

6
Pythonの循環リストイテレータ
最後に訪問したアイテムから開始するたびに、おそらく何度も循環リストを反復処理する必要があります。 ユースケースは接続プールです。クライアントは接続を要求し、イテレータはポイントされた接続が使用可能かどうかを確認してそれを返します。それ以外の場合は、使用可能な接続が見つかるまでループします。 Pythonでそれを行うためのきちんとした方法はありますか?
99 python  list  iterator 

6
Pythonでオーディオを検出して録音する
オーディオクリップをWAVファイルとしてキャプチャし、処理するために別のpythonに渡す必要があります。問題は、オーディオがいつ存在するかを判断し、それを録音し、無音になったときに停止し、そのファイルを処理モジュールに渡す必要があることです。 私はwaveモジュールで純粋な無音があることを検出してそれを破棄し、無音以外の何かが検出されるとすぐに録音を開始し、ラインが無音になると再び録音を停止することが可能になると思います。 私の頭を完全に理解することはできません。誰でも基本的な例から始めることができます。

12
sumのようなPythonの要素ごとのタプル演算
とにかく次のように動作するようにPythonでタプル操作を取得することはありますか? >>> a = (1,2,3) >>> b = (3,2,1) >>> a + b (4,4,4) の代わりに: >>> a = (1,2,3) >>> b = (3,2,1) >>> a + b (1,2,3,3,2,1) __add__and __mul__メソッドはそのように機能するように定義されているため、私はそれがそのように機能することを知っています。したがって、唯一の方法はそれらを再定義することでしょうか?
99 python  tuples 

13
PythonでJSONを美化するには?
PythonやコマンドラインでJSONを美化する方法を誰かが提案できますか? それを行うことができる唯一のオンラインベースのJSON美化機能は、http : //jsonviewer.stack.hu/でした。 ただし、Python内から使用する必要があります。 これは私のデータセットです: { "head": {"vars": [ "address" , "description" ,"listprice" ]} , "results": { "bindings": [ { "address" : { "type":"string", "value" : " Dyne Road, London NW6"}, "description" :{ "type":"string", "value" : "6 bed semi detached house"}, "listprice" : { "type":"string", "value" : "1,150,000"} } …



4
Pythonリストスライスで割り当てはどのように機能しますか?
Python docは、リストをスライスすると新しいリストが返されると言っています。 「新しい」リストが返される場合、「スライスへの割り当て」に関連する次の疑問があります。 a = [1, 2, 3] a[0:2] = [4, 5] print a 出力は次のようになります。 [4, 5, 3] 何かを返す何かが表現の左側に来ることができるでしょうか? はい、私はドキュメントを読んでそれが可能であると述べていますが、リストをスライスすると「新しい」リストが返されるので、元のリストが変更されているのはなぜですか?その背後にあるメカニズムを理解できません。
99 python  list  slice 

10
Djangoの場合-モデルの継承-親モデルの属性をオーバーライドできますか?
私はこれをやろうとしています: class Place(models.Model): name = models.CharField(max_length=20) rating = models.DecimalField() class LongNamedRestaurant(Place): # Subclassing `Place`. name = models.CharField(max_length=255) # Notice, I'm overriding `Place.name` to give it a longer length. food_type = models.CharField(max_length=25) これは私が使用したいバージョンです(私はどんな提案にもオープンですが):http : //docs.djangoproject.com/en/dev/topics/db/models/#id7 これはDjangoでサポートされていますか?そうでない場合、同様の結果を達成する方法はありますか?

5
elseが最も多く行われたときにif-elif-elif-elseステートメントを作成する最も効率的な方法は?
99%の時間でelseステートメントが実行されるin if-elif-elif-elseステートメントがあります。 if something == 'this': doThis() elif something == 'that': doThat() elif something == 'there': doThere() else: doThisMostOfTheTime() この構成は多く行われますが、他の条件に達する前にすべての条件を通過するため、Pythonicは言うまでもなく、これはあまり効率的ではないと感じています。一方、これらの条件のいずれかが満たされているかどうかを知る必要があるため、とにかくそれをテストする必要があります。 これをより効率的に行うことができるかどうか、またどのように行うことができるか、これが単にそれを行うための最良の方法であるかを誰かが知っていますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.