1

Windows 7 x64 を使用していますが、Windows でプログラムを開くと、正しく動作しません。それはスターですが、コマンドをダブルクリックすると、コマンドが機能しません。

/run cmd /c start "" "C:\Python27\Scripts\bot.bat"
/run cmd /c start python "C:\Python27\Scripts\bot.py"
/run python "C:\Python27\Scripts\bot.py"

これらを試してみましたが、すべて失敗しました。.bat ファイルまたは .py をダブルクリックするだけで動作します。

batファイルはpythonファイルを呼び出すだけです

@echo off
start "" "C:\Python27\Scripts\bot.py"

Windowsで開いたときのエラー-実行は

[Errno 2] No such file or directory: 'list.txt'

list.txt は Scripts フォルダー内にあり、ダブルクリックで開くと常に機能しました。

アップデート

を使用して読み取り用にファイルを開きます

g = open("list.txt","r")

そして再び書き込みのために:

g = open("list.txt","w")

私はジェームズのソリューションを試してみましたが、うまくいきましたが、これらを使用する方法がたくさんあるので、検索と置換だけでなく、インデントが含まれ、方法に応じてリストの名前が変わるため、多くの作業が必要になります。

4

2 に答える 2

2

アプリケーションで次のようなことをしたいと思うでしょう:

import os
import sys

with open(os.path.join(os.path.dirname(sys.argv[0]), "lists.txt"), "r") as f:
    # do something with lists.txt

これにより、現在のディレクトリなどにあるという仮定が削除されます。lists.txt

注:これは、実行中のプログラムへの「完全な絶対パス」であり、できればシステム上であるsys.argv[0] 必要C:\Python27\Scripts\bot.pyがあります。

更新:「エントリポイントのディレクトリを決定する」手段としてsys.argv[0]( Alex Taylor に感謝します)を使用する代わりに、その__file__モジュールへの「フル パス」である Python モジュールの「グローバル」を使用することもできます。ここでの唯一の注意点は、「パッケージ」が圧縮されているか、インポート可能なアーカイブである場合、これは機能しないことです。見る:__file__

于 2015-05-05T02:50:05.847 に答える