如何用Python将代码写入.txt文件?

时间:2017-10-02 06:29:46

标签: python string formatting

我有一个Python代码,我想写入.txt文件,但我总是得到格式错误(因为结构)。如何以正确的形式输出?我用#来查看开始和结束我的“字符串”部分。

这是我试过的:

#!/usr/bin/python
#!/bin/sh
# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
from selenium import webdriver
import urllib2
import subprocess
import unicodecsv as csv
import os
import sys
import io

array = ['link1', 'link2', 'link3']

string = #MY STRING IS START HERE
("browser = webdriver.Firefox()
datatable=[]
   browser.get('%s')  WebDriverWait(browser, 5).until(lambda s: s.execute_script("return jQuery.active==0"))
time.sleep(5)
html = browser.page_source
soup=BeautifulSoup(html,"html.parser")
 \n")
#AND MY STRING END HERE

file="/Users/Adam/Desktop/data.txt"

with open(file, "w") as f:
    for i in array:
        f.write(string % i)

f.close()

编辑:

string2= """query = """ load data local infile '/usr/src/Python-2.7.13/output.csv' 
into table ARRIVALS
fields terminated by ';'
enclosed by '"'
lines terminated by '\n'
ignore 1 lines;
""" """

2 个答案:

答案 0 :(得分:3)

为了在多行上写字符串,必须使用三引号,而不是单引号。

我的猜测是你的代码会在这里破解:

string = #MY STRING IS START HERE
("browser = webdriver.Firefox()
datatable=[]
   browser.get('%s')  WebDriverWait(browser, 5).until(lambda s: s.execute_script("return jQuery.active==0"))
time.sleep(5)
html = browser.page_source
soup=BeautifulSoup(html,"html.parser")
 \n")

因为它无法以这种方式读取字符串。

使用

string = """browser = webdriver.Firefox()
datatable=[]
browser.get('%s')  WebDriverWait(browser, 5).until(lambda s: s.execute_script("return jQuery.active==0"))
time.sleep(5)
html = browser.page_source
soup=BeautifulSoup(html,"html.parser")
\n""")

应解决问题。

对于已编辑的问题:您应该使用转义码替换字符串中的双引号。

所以,而不是

string = """ some text """ here """ """

你应该使用

string = """ some text \"\"\" here \"\"\" """

答案 1 :(得分:0)

由于可以通过“”来实现多行注释,您可以使用:

    string = """("browser = webdriver.Firefox()
datatable=[]
browser.get('%s')  WebDriverWait(browser, 5).until(lambda s: s.execute_script("return jQuery.active==0"))
time.sleep(5)
html = browser.page_source
soup=BeautifulSoup(html,"html.parser")
 \n")"""

使用单引号:

string = '''"""query = """ load data local infile '/usr/src/Python-2.7.13/output.csv' 
into table ARRIVALS
fields terminated by ';'
enclosed by '"'
lines terminated by '\n'
ignore 1 lines;
"""'''