简体   繁体   English

sqlite保存文本文件并按原样输出:python

[英]sqlite saving text file and output as it is : python

I am trying to save a text file in sqlite using python but when I try to retrieve the file, I see newline character and other characters. 我正在尝试使用python将文本文件保存在sqlite中,但是当我尝试检索该文件时,看到换行符和其他字符。 Is there any way to output the file as it is like the original file? 有什么办法可以像原始文件一样输出文件? Is there any work around. 有没有解决的办法。

import sqlite3

conn=sqlite3.connect('example.db')
c=conn.cursor()

c.execute("create table code_tag1 (language text, code BLOB, tag text)")
#c.execute("select * from sqlite_master")
with open("bubblesort_java.txt","rb") as f:
    ablob=f.read()

c.execute("insert into code_tag1 values('java',?,'bubblesort')",[buffer(ablob)])
conn.commit()
row=c.execute("select * from code_tag1").fetchone()
print (repr(str(row[1])))
conn.close()

The output is : 输出为:

'import java.util.Scanner;\r\n \r\nclass BubbleSort {\r\n  public static void main(String []args)     
{\r\n    int n, c, d, swap;\r\n    Scanner in = new Scanner(System.in);\r\n \r\n     
System.out.println("Input number of integers to sort");\r\n    n = in.nextInt();\r\n \r\n    int 
array[] = new int[n];\r\n \r\n    System.out.println("Enter " + n + " integers");\r\n \r\n    for 
(c = 0; c < n; c++) \r\n      array[c] = in.nextInt();\r\n \r\n    for (c = 0; c < ( n - 1 ); 
c++) {\r\n      for (d = 0; d < n - c - 1; d++) {\r\n        if (array[d] > array[d+1]) /* For 
descending order use < */\r\n        {\r\n          swap       = array[d];\r\n          array[d]   
= array[d+1];\r\n          array[d+1] = swap;\r\n        }\r\n      }\r\n    }\r\n \r\n    
System.out.println("Sorted list of numbers");\r\n \r\n    for (c = 0; c < n; c++) \r\n      
System.out.println(array[c]);\r\n  }\r\n}'

How can I get the code as it is in original file? 如何获取原始文件中的代码?

Thanks 谢谢

Abhinav 阿比纳夫

There's nothing wrong with the output. 输出没有问题。 You're printing the repr of the string, which is why it shows the \\r , \\n , etc. 您正在打印字符串的repr ,这就是为什么它显示\\r\\n等的原因。

>>> data = """Hello
... World"""
>>> 
>>> print data
Hello
World
>>> print repr(data)
'Hello\nWorld'
>>> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM