如何使用Python将SQL Server查询输出写入.txt文件?

如何使用Python将SQL Server查询输出写入.txt文件?,python,sql-server,flat-file,Python,Sql Server,Flat File,我是Python新手,正在尝试连接到SQL Server db,并将查询的输出转换成一个flat.txt文件 一些代码正在工作,但只写了近1000条记录,然后就停止了 Python版本:2.7.13 下面的代码能够将所有100万条记录写入csv文件,而不是问题所在的.txt文件 import sys print sys.path import pyodbc import pandas as pd connection = pyodbc.connect('DRIVER={SQL Server};S

我是Python新手,正在尝试连接到SQL Server db,并将查询的输出转换成一个flat.txt文件

一些代码正在工作,但只写了近1000条记录,然后就停止了

Python版本:2.7.13

下面的代码能够将所有100万条记录写入csv文件,而不是问题所在的.txt文件

import sys
print sys.path
import pyodbc
import pandas as pd
connection = pyodbc.connect('DRIVER={SQL Server};SERVER=HCR046TW5SQL\HCRMIG50016;DATABASE=ENT;UID=pmatsa1;PWD=password@2015_1711;autocommit=True')
print 'Trying to assign cursor connection'
cursor = connection.cursor()
sql = """SELECT 
LEFT(ltrim(ISNULL(IN_OUT_BUILDING_NUM,' '))+REPLICATE(' ', 10) , 10)+
LEFT( ltrim(ISNULL(IN_OUT_ADR_ORIG_SHORT,' '))+REPLICATE(' ', 50) , 50)+
LEFT(ltrim(ISNULL(IN_OUT_ADR_ORIG_CITY,' '))+REPLICATE(' ', 28) , 28)+
LEFT(ltrim(ISNULL(IN_OUT_ADR_ORIG_STATE,' '))+REPLICATE(' ', 2) , 2)+
LEFT(ltrim(ISNULL(IN_OUT_ADR_ORIG_ZIP,' '))+REPLICATE(' ', 9) , 9)
 FROM ADDR_VAL_STAN_PB;"""
DataOut = open("Address_Validation_Input_File.txt", "a+")
cursor.execute(sql)

# Get data in batches
while True:
    # Read the data
    df = pd.DataFrame(cursor.fetchmany(1000))
    # We are done if there are no data
    if len(df) == 0:
        break
    # Let's write to the file
    else:
        df.to_csv(DataOut, header=False)

# Clean up
DataOut.close()
cursor.close()
connection.close()

将以下代码替换为代码中的以下代码

df_csv=pd.DataFrame()
while True:
# Read the data
     df = pd.DataFrame(cursor.fetchall())
     # We are done if there are no data
     if len(df) == 0:
            break
     # Let's write to the file
     else:
          df_csv.append(df)
df_csv.to_csv('D:/path/test.txt', header=None, index=None, sep=' ', mode='a')

尝试使用fetchall()而不是fetchmany(1000)。它应该可以工作。嗨,Kaushik,我根本不想要csv文件作为输出。我只需要文本文件。我给的代码是csv的,但我需要文本文件。你做了什么来将这个脚本从csv输出转换为文本文件输出,Praveen?在我看来,关于这个问题,(a)没有明确说明你的要求,(b)你没有尝试过任何东西。请注意,堆栈溢出不是免费劳动力的交换所-我们需要您首先做出明确的努力。嗨,Kaushik,我根本不希望csv文件作为输出。我只需要文本文件。我给出的代码是用于csv的,但我需要文本文件中的它。我编辑了代码,请看。如果有效,请选择答案。