それが私のセットアップです:
PostgreSQL/PostGIS データベースを実行している VirtualMachine (Ubuntu 14.04.LTS) があります。
QGIS の Windows 7 を使用して、このデータベースに接続し、フィーチャ レイヤーを GIS プロジェクトに読み込みます。
いくつかの Python コードを使用して、タイル ID といくつかの情報を含むファイルを作成します。
import os
import io
import time
layer=None
for lyr in QgsMapLayerRegistry.instance().mapLayers().values():
if lyr.name() == "fishnet_final":
layer = lyr
for f in layer.selectedFeatures():
pth = os.path.join(os.path.dirname(r'H:\path_to_file\'), str(f['name']) + "_" + str(time.strftime("%Y-%m-%d")) + "_" + str(f['country']) + ".txt")
fle = open(pth,'wb')
fle.writelines(str(f['name']))
fle.write('\n')
fle.write(str(time.strftime("%Y-%d-%m")))
fle.write('\n')
fle.write(str(f['country']))
fle.write('\n')
fle.close()
os.rename(pth, pth.replace(' ', ''))
ファイルには次の権限があります。
-rwx------
自分のグループと他のグループにも同じ権限を設定したい。
-rwxrwxrwx
私は試した:
import shlex
command=shlex.split("chmod 777 r'H:\path_to_file\file.txt'")
subprocess.call(command)
失敗。
機能していたのは次のとおりです。
command=shlex.split("touch r'H:\path_to_file\file.txt'")
また
command=shlex.split("rm r'H:\path_to_file\file.txt'")
chmod コマンドが機能しないのはなぜですか?
UNIX では、このファイルを chmod できます。私は Windows と同じユーザーです。
os.chmod メソッドも試しました。しかし、成功しません。
import os, stat
st = os.stat(r'H:\path_to_file\file.txt')
os.chmod(r'H:\path_to_file\file.txt', st.st_mode | 0o111 )
アップデート
UNIX (Solaris) で「chmod 777 ファイル」を実行すると、パーミッションは
-rwxrwxrwx
今できることは、GIS プロジェクトの Windows で権限をダウングレード/削除することです。
subprocess.call(r'chmod 400 "H:\path_to_file\file.txt"', shell=True)
0
-r-xr-xr-x
このコマンドを使用する0
と、Python コンソール出力にフィードバックが表示されます
新しいファイルで chmod 777 を実行すると、フィードバックも得られ0
ますが、何も起こりません。
問題は、権限をダウングレードすることしかできないことです。新しい権限を設定できません!