1. 程式人生 > >java中如何呼叫Python指令碼檔案

java中如何呼叫Python指令碼檔案

2.下載完成之後,新增到java的工程中,新增工程參考部落格

3.編寫python函式,本次編寫的函式主要用於爬取一個笑話網頁的笑話,程式碼如下:

# -*- coding: utf-8 -*-
import urllib2
import re
import os

def myStory(title_Content,number):
	xx =urllib2.urlopen("http://www.haha365.com/joke/index_1.htm")
	data = xx.read().decode('GBK')
	patter = re.compile("<h3><A href.*?>(.*?)</a></h3>",re.S)
	patter1 = re.compile("<div id=\"endtext\">(.*?)</div>",re.S)
	res = re.findall(patter,data)
	resText = re.findall(patter1,data)
	for i in range(len(resText)):
		resText[i] = resText[i].replace("<br />","")
		resText[i] = resText[i].replace("&ldquo","")
		resText[i] = resText[i].replace("&rdquo", "")
		resText[i] = resText[i].replace("</p>", "")
		resText[i] = resText[i].replace("<p>", "")
	if title_Content==1:
		return res[number]
	else:
		return resText[number]

4.編寫java端函式:

package guitest;
import java.io.UnsupportedEncodingException;
import java.util.Properties;

import org.python.core.PyFunction;
import org.python.core.PyInteger;
import org.python.core.PyObject;
import org.python.core.PyObject.ConversionException;
import org.python.core.PyString;
import org.python.util.PythonInterpreter;

public class FirstJavaScript {
    public static void main(String args[]) throws UnsupportedEncodingException, ConversionException {
    	Properties props = new Properties();  
    	props.put("python.console.encoding", "utf-8");  
        props.put("python.security.respectJavaAccessibility", "false");  
        props.put("python.import.site", "false");  
        Properties preprops = System.getProperties();  
        PythonInterpreter.initialize(preprops, props, new String[0]); 
        PythonInterpreter interpreter = new PythonInterpreter();
        //python檔案路徑
        interpreter.execfile("F:/whg/whg.py");
        //獲取python檔案中的函式
        PyFunction func = interpreter.get("myStory",
                PyFunction.class);
        //呼叫函式
        PyObject title = func.__call__(new PyString("12"),new PyInteger(1),new PyInteger(10));
        PyObject content = func.__call__(new PyString("12"),new PyInteger(2),new PyInteger(10));
        //輸出內容
        System.out.println(title.toString());
        System.out.println(content.toString());

    }
}

5.執行之後,輸出的結果為:

笑話名字:還真沒你啥事
  笑話內容:昨晚和一哥們喝酒,突然就問他最近婚姻感情怎麼樣,哥們平淡道:沒啥問題,就是換了幾位丈母孃。
  我佩服的五體投地:可以啊,神人啊。
  哥們不平道:沒我啥事,TMD,是我岳父厲害!

相關推薦

java如何呼叫Python指令碼檔案

2.下載完成之後,新增到java的工程中,新增工程參考部落格3.編寫python函式,本次編寫的函式主要用於爬取一個笑話網頁的笑話,程式碼如下:# -*- coding: utf-8 -*- import urllib2 import re import os def my

Mac筆記本是用Idea開發工具在Java專案呼叫python指令碼遇到的環境變數問題解決

問題描述: mac筆記本本身會自帶幾個python版本,比如python2.7版本,我沒有改動mac預設的python版本,只是安裝了python3.7版本。 使用Pycharm開發Python專案沒有遇到什麼問題。但是在java專案中呼叫py指令碼的話,就有問題了。我的專案需要將Pycharm開發好的p

java呼叫本地指令碼

java中可以呼叫本地指令碼,也可以遠端呼叫shell指令碼,但是java呼叫遠端指令碼不安全,一般不這麼做,那該怎麼呼叫呢? 建議在本地寫個指令碼呼叫遠端指令碼,在java程式中呼叫本地指令碼,具體程式碼: private int execShell(String shellPa

Python:Win7下Git Bash呼叫python指令碼

Git Bash中呼叫python指令碼需要使用:winpty python hello.py。每次呼叫的時候都這麼寫,太麻煩了。使用alias python='winpty python' 將'winpty python'重新命名為'python',這樣每次呼叫的時候直接輸

[JAVA]Runtime 呼叫Python指令碼(可傳參)

使用場景:在java中通過runtime呼叫python指令碼 1.python指令碼中連線Oracle資料庫查詢資料後輸出檔案,指令碼頭內容如下 #!/usr/bin/python3 #encoding=utf-8 import os from pypinyin im

java 直接呼叫python指令碼,並傳遞引數

最近陸續用python寫了很多檔案處理指令碼,雖然功能都比較簡單 ,但還是感覺到python對檔案處理的簡潔高效 ,越發覺得java的語法相當的繁瑣~ 接到個需求處理ftp資料介面 。所以想把python指令碼也用上。java程式碼定時掃描ftp資料倉庫 ,呼叫pyt

在C#呼叫python指令碼,並使用python第三方arcpy模組

前言 1、C#中呼叫python指令碼,一是通過ironpython直接執行python指令碼,二是通過呼叫Process類啟動電腦上的python.exe,執行python指令碼。 前者在使用第三方arcpy模組式,會提示錯誤:No Module Named arcpy,

java呼叫python方法

import javax.script.*;   import org.python.util.PythonInterpreter;   import java.io.*;   importstatic java.lang.System.*;   publicclass FirstJavaScript

[VS2013]C++呼叫Python指令碼提示 error LNK2001: 無法解析的外部符號__imp_PyString_FromString等錯誤的解決方案

配置如下 VS2013專案: Win32 Console,Release X64  包含目錄   : C:\Python27\include 庫 目 錄     : C:\Python27\libs

JAVA使用Runtime.getRuntime()執行python指令碼檔案

java呼叫python(含anaconda) 注意: 1、python指令碼必須都用的是絕對路徑(可以拼接) 2、python指令碼呼叫自定義的模組時要將模組路徑新增到環境中。如果用sys.append(模組絕對路徑),要每一個指令碼都要新增專案所在的路徑。 cmd命令列執行:&n

關於JAVA呼叫Python指令碼並傳遞引數

JAVA 程式呼叫python指令碼目前存在兩種形式。第一種:運用JAVA本身的自帶功能;第二種:使用jython Jar包的自帶方法來呼叫python指令碼 呼叫準備: 首先你要在本地獲取LINUX環境安裝python環境,如果是JYTHON的話需要安裝JYTHON,兩

實現在Java執行python程式碼或py指令碼(可傳引數)

最近用Java寫服務端程式時,遇到這樣一個需求:需要把用python寫的機器學習演算法部署到伺服器上,然後Java執行py指令碼,並且取得演算法執行的結果。在網上找了很久,有些跑不通,有些是基於windows的,我的伺服器是linux的,遇到了不少坑= =好不容易解決了,記錄

Java呼叫Python指令碼(Python3,Windows10系統)

介紹下如何在Java中呼叫Python指令碼,可能是目前最簡單的方法(●’^'●)。 又是師姐的任務,要求把我的Python程式整合到純Java的系統中。於是在網上又是一頓搜尋,不乏各種厲害的方法。其中最常見的是Jython,聽起來十分高大上,直接把世界上

程式碼遷移攻略:在Java工程呼叫Python程式碼

Python是一門好用的指令碼語言,底層基於C實現,快速且簡單。使用python可以說是站在巨人肩膀上程式設計,使得程式設計師更專注於業務及邏輯,而不是被人學爛的語言工具。但是團隊合作時候,就會有一些多

Java呼叫Python指令碼(不需要傳參)

     具體步驟:1)Run-Run Configurations...-Environment-New,Name設定為:PATH,Value設定為:python的安裝路 徑,例如:D:\Program\python27

vs2010C++呼叫python指令碼並製作安裝包

一、 準備工作 1. 安裝visual studio 210。 2. 安裝python編譯環境,筆者版本為2.7.2。 3. 安裝py2exe,用於給編寫好的python打包。 二、編寫python指令碼程式 以下程式為筆者為學校的bbs寫的登陸指令碼LilyLogin.

Java 呼叫 groovy 指令碼檔案,groovy 訪問 MongoDB

groovy 訪問 MongoDB 示例: shell.groovy package db import com.gmongo.GMongoClient import com.mongodb.BasicDBObject import com.mongodb.MongoCredential

java呼叫python指令碼——坑

在python指令碼中使用sys.argv接收入參,""(java傳過來的空字串)竟然丟失被忽略了,也是神奇。 (注意:接收引數從sys.argv[1]開始,sys.argv[0]是python指令碼的路徑地址)

java呼叫C/C++編寫的生成的動態連線庫dll檔案介面的簡單例子

1、首先用java編寫一個簡單類 public class Hello { public native void sayHello(); static { System.loadLibrary("HelloDll"); } public static void

Java程式碼實現呼叫BAT指令碼檔案殺死程序

Java環境下呼叫bat指令碼實現殺死Windows程序: 一、編寫bat指令碼         一般使用taskkill或者ntsd來殺死程序。可以指定具體的PID和程序名來完成,可在Windows的Win+R 的cmd下輸入:    taskkill  /? 來檢視具體