4

.txtファイルを作成したいテキストの文字列があります。(セキュリティ上の理由から)ユーザーがアクセスできるようにしたくないので、.txtファイルをメモリに保存したいと思います(可能な場合でも)。

例:文字列は次のとおりです。

'''
Username: Bob
Password: Coolness

'''

この文字列を.txtファイルとしてメモリに保存したいと思います。次に、それを別のプログラムに送信します。

anotherprogram.exe mytxt.txt

私は周りを見回しましたが、StringIOでこれを行うことが可能かどうか疑問に思っていますか?「文字列をファイルとして読み書きする」と書かれています。わかりません。とにかくこれを行う方法を知っている場合は、返信してください。

4

4 に答える 4

2

他のプログラムが標準入力から読み取ることができる場合は、それsubprocessが進むべき道かもしれません。これは、がである愚かな例anotherprogram.exeですcat

s='''
Username: Bob
Password: Coolness

'''

from subprocess import Popen,PIPE
p = Popen(['cat','-'], stdin=PIPE, stdout=PIPE)
stdoutdata, _ = p.communicate(s)

ファイルからの入力を受け入れる多くのユーティリティは、ファイル名として渡すことでstdinから読み取ることができます-が、すべてではありません。anotherprogram.exeこれが機能するかどうかは、実際に何であるかに大きく依存します。

于 2012-07-24T12:09:31.110 に答える
1

他のユーザーがアクセスできるようにしたくない場合は、暗号化を使用してキーを非表示にするか、オペレーティングシステムが提供するユーザー制御システムを使用してください。私は最初のものを好みます。

RAMディスクを使用してメモリ内にファイルを作成できますが、この方法で作成されたファイルはセキュリティを提供しません(または揮発性であるため少しだけです)。pyFilesystemと呼ばれるPython用のモジュールがあります。これはあなたのためにそれを行います。

しかし、ユーザーとしてディスク上のほぼすべてのファイルにアクセスできると私が考える限り、したがって、熱心なユーザーがそれを効果的に見つけるのを防ぐことは困難です。

anotherprogram.exeのファイルはユーザースコープ内にある必要があるため、ユーザーが何らかの方法でアクセスできる必要があります。

于 2012-07-24T11:45:32.557 に答える
0

すべてのユーザーではなく、ユーザーだけがファイルにアクセスできるようにするために、OS(Windowsだと思います)が提供するセキュリティに依存してみませんか。明らかに、anotherprogram.exeは、ファイルへの読み取りアクセス権を持つユーザーとして実行する必要があります。

于 2012-07-24T12:11:39.390 に答える
0

wx.FileSystemというクラスを持つwxpythonというモジュールがあります

于 2012-08-02T16:00:54.737 に答える