Вывод на печать и запись Python заканчивается на»…», а не на полной строке

#python #pandas

Вопрос:

Я пробовал перемещаться по строкам и переменным, которые я объединяю, используя циклы while, перемещал строку и метод, которым я открываю выходной файл, и т. Д. Независимо от того, что я делаю, мои выходные данные печатают/записывают «curl» мою переменную url. Оттуда оно заканчивается на»…», например: завиток «https://examplesite/…

Имеет ли это какое-то отношение к проблеме буфера или нарезки? Спасибо вам за любую и всяческую помощь. Полный код ниже.

 import pandas as pd

# file = open("output.txt","wt")
header_list = ["COLA", "COLB"]
df = pd.read_csv("curl_data.csv", names=header_list)

df_length = len(df)

iterator = 0
with open("output.txt", "w") as file:
    for row in df.iterrows():
        url = '"https://examplesite'
        lic = df.COLA # use   instead of spaces
        name = df.COLB # use   instead of spaces
        group = "example group" # use   instead of spaces
        command = "curl "   url   "license="   lic   "amp;name="   name   "amp;group="   group   '"'
        print(command)
        file.write(str(command))
        iterator  = 1
        if iterator == 1:
            break
        
file.close()
 

Комментарии:

1. Этот сценарий этого не сделает. Я подозреваю, что это делается тем, что вы используете для просмотра файла.

2. Вы используете записную книжку Jupyter?

3. lic = df.COLA разве это не должно быть row.COLA вместо этого? Вероятно, вывод просто становится очень длинным, потому что вы объединяетесь во всем столбце.

4. if iterator == 1: break это означает, что он запишет в файл только первую строку.

5. Что вы увидите, если сделаете print(len(command)) это ? Это длина строки с ... или полная длина?

Ответ №1:

Решенный. Как предположил Имре Керр в комментариях, проблема заключалась в длине вывода.

Я изменил свой цикл for, чтобы for i in range(len(df)): он проходил через фрейм данных только один раз (в соответствии с предложением Бармара), и изменил ссылки на столбцы в моем коде с df.COLA на df.loc[i, "COLA] на, чтобы он не печатал каждый раз весь набор данных. Это устранило проблему слишком длинных строк, и, таким образом, я смог увидеть полную строку для каждой выведенной строки.