【问题标题】:file cannot be executed in command line using Python [duplicate]无法使用 Python 在命令行中执行文件 [重复]
【发布时间】:2018-02-18 05:56:42
【问题描述】:

我是 python 的初学者,我有一个包含 URL 列表的 txt 文件,当我想扫描 txt 文件时,我在最后一个错误中出现了键盘中断。这是我的代码
如果 name == "ma​​in":

# Directory that contains panafapi.py
SCRIPT_DIRECTORY = "/Users/kiya/Downloads/panpython/bin"

RES_DIRECTORY = "/Users/kiya/Desktop/result/"
TODAY = datetime.date.today().strftime("%Y%m%d")

CHECK_DATE, NOW_DATE = "2018-01-01", "2018-01-31"    
try:
    url_file = sys.argv[1]
except Exception:
    print("Usage: python3 {} [url file]".format(sys.argv[0]))
    sys.exit()

url_file = str(url_file)
df=open(url_file,"r",encoding="utf-8", errors='replace')
data=df.readlines();df.close()
urlPattern = re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')

url_list = []
for url in data:
    dt = url.strip()
    dt = re.findall(urlPattern,dt)# get URLs
    if dt:
        url_list.append(dt[0])
print("Read {} Url(s)".format(len(url_list)))
group_i = 0

【问题讨论】:

  • 不要在check_output() 调用的中间构造你的命令。在函数调用之外构造字符串,例如cmd = "....".format(....),然后是 checkoutput(cmd)。为什么?因为当你的命令不起作用时,你可以打印 cmd,并尝试确定该命令出了什么问题,就像在命令行上尝试打印出的命令,看看它是否有效。

标签: python data-analysis


【解决方案1】:

我认为问题在于您将输出重定向到不存在的路径

/Users/kiya/Desktop/result/result767_http://blogimg.goo.ne.jp/.json

尝试一个简单的文件名,例如

/Users/kiya/Desktop/result/result767_blogimg.goo.ne.jp.json

【讨论】:

  • 我的怀疑也是如此。很明显,url 被添加到了真实路径的末尾。
猜你喜欢
  • 2017-05-09
  • 2020-10-10
  • 2022-12-06
  • 2016-11-09
  • 2017-03-15
  • 2017-01-16
  • 1970-01-01
  • 1970-01-01
  • 2017-07-09
相关资源
最近更新 更多