python-shell icon indicating copy to clipboard operation
python-shell copied to clipboard

not getting print from python script

Open badushaebrahim opened this issue 3 years ago • 4 comments

The Question: trying to pass back the file path that is create dbut not recieving any any ideas Any relevant python/javascript code: my server

var multer  = require('multer');
var fs  = require('fs');
var path = require('path');
var pdfUtil = require('pdf-to-text');
const generateUniqueId = require('generate-unique-id');
const {PythonShell} =require('python-shell');
// var options = {
//     root: 
// };

// pages up to
// var option = {from: 0, to: 10};
var defpath =path.join(__dirname)
var dir2 = '/home/badusha/Desktop/min/nodejs-simple-file-upload/uploads/';
// var dir3 = '/home/badusha/Desktop/min/nodejs-simple-file-upload/tmp/';
var full_story = "12"
var app = express();
app.set('view engine', 'ejs');

app.get('/', (req, res) => {
    res.render('index');
});

var storage = multer.diskStorage({
    destination: function (req, file, callback) {
        var dir = './uploads';
        if (!fs.existsSync(dir)){
            fs.mkdirSync(dir);
        }
        callback(null, dir);
    },
    filename: function (req, file, callback) {
        callback(null, file.originalname);
    }
   
});
var upload = multer({storage: storage}).array('files', 12);
app.post('/upload', function (req, res, next) {
    upload(req, res, function (err) {
        if (err) {
            return res.end("Something went wrong:(");
            // console.log(filename)
        }
        var filenames =dir2+"/"+req.files[0].filename
        console.log(filenames)
	var argz = defpath+"/uploads/"+req.files[0].filename
        let options = {
		mode: 'text',
		pythonOptions: ['-u'], // get print results in real-time
		//   scriptPath: 'path/to/my/scripts', //If you are having python_test.py script in same folder, then it's optional.
		args: [argz] //An argument which can be accessed in the script using sys.argv[1]
	    };
	    console.log("53")
	PythonShell.run('new.py', options, function (err, result){
		console.log("started py")
		if (err) throw err;
		// result is an array consisting of messages collected
		//during execution of script.
		console.log('result: ', result.toString());
		res.sendFile(argz+'0.mp3', options, function (err) {
			if (err) {
			    next(err);
			} else {
			    console.log('Sent:', fileName);
			}
		    });
	  });
	  
        

         
        //     res.send("done")
          
    
})

app.listen(3000);

# importing required modules 
import sys
import PyPDF2
from gtts import gTTS
import random
random.seed(5)
# creating a pdf file object 
pdfFileObj = open(sys.argv[1], 'rb') 
rap = sys.argv[1]   
# creating a pdf reader object 
pdfReader = PyPDF2.PdfFileReader(pdfFileObj) 
    
# printing number of pages in pdf file 
k =0
txt=""
pgno = pdfReader.numPages
while(k< pgno):

# creating a page object 
	pageObj = pdfReader.getPage(k) 
	
	# extracting text from page 
	txt+=pageObj.extractText()
	k+=1
    
# closing the pdf file object 

pdfFileObj.close()
tts = gTTS(txt)
ran = random.random()*0
# nam =rap+str(ran)+'0.mp3'
nam =rap+'0.mp3'
tts.save(nam)

print(nam)

dependecy

    "ejs": "^2.5.7",
    "express": "^4.16.2",
    "fs": "0.0.1-security",
    "generate-unique-id": "^2.0.1",
    "gtts": "^0.2.1",
    "multer": "^1.3.0",
    "pdf-to-text": "^0.0.7",
    "python-shell": "^3.0.1"
  },```

badushaebrahim avatar Sep 29 '22 17:09 badushaebrahim

hi am new here so am trying to make an web app to convert pdf to audio file so i got pdf file and wheen i try tor print file name its not coming out any idea

check out my whole project at https://github.com/badushaebrahim/pdf-to-audio

badushaebrahim avatar Sep 29 '22 17:09 badushaebrahim

thanks

badushaebrahim avatar Sep 29 '22 17:09 badushaebrahim

Not sure, I tried running some code adapted from your example and it worked:

import sys
import PyPDF2
from gtts import gTTS
import random
random.seed(5)
# creating a pdf file object 
pdfFileObj = open(sys.argv[1], 'rb') 
rap = sys.argv[1]   
# creating a pdf reader object 
pdfReader = PyPDF2.PdfFileReader(pdfFileObj) 
    
# printing number of pages in pdf file 
k =0
txt=""
pgno = pdfReader.numPages
while(k< pgno):

# creating a page object 
	pageObj = pdfReader.getPage(k) 
	
	# extracting text from page 
	txt+=pageObj.extractText()
	k+=1
    
# closing the pdf file object 

pdfFileObj.close()

tts = gTTS(txt)
ran = random.random()*0
nam =rap+str(ran)+'0.mp3'
nam =rap+'0.mp3'
tts.save(nam)

print(nam)
const {PythonShell} =require('python-shell');

# be sure to replace the below!
var argz = 'put your path here';
let options = {
    mode: 'text',
    pythonOptions: ['-u'], // get print results in real-time
    //   scriptPath: 'path/to/my/scripts', //If you are having python_test.py script in same folder, then it's optional.
    args: [argz] //An argument which can be accessed in the script using sys.argv[1]
};
console.log("53")
PythonShell.run('new.py', options, function (err, result){
    console.log("started py")
    if (err) throw err;
    // result is an array consisting of messages collected
    //during execution of script.
    console.log('result: ', result.toString());
});

As a rule of thumb when debugging, try to simplify your code until it's working, and then build back up to figure out where it went wrong.

Almenon avatar Sep 30 '22 03:09 Almenon

hi am new here so am trying to make an web app to convert pdf to audio file so i got pdf file and wheen i try tor print file name its not coming out any idea

check out my whole project at https://github.com/badushaebrahim/pdf-to-audio Hello, fixed?

Qodestackr avatar Jan 11 '23 09:01 Qodestackr