사용자 입력을 csv 파일에 여러 줄로 인쇄하는 방법은 무엇입니까?

존시 19

저는 코딩에 익숙하지 않아 프로그램 사용자의 입력을 다른 줄의 csv 파일로 설정하는 방법을 모릅니다. 현재하는 일은 모두 한 줄에 인쇄하는 것이므로 유용하지 않습니다. 어떤 도움을 주시면 감사하겠습니다. 또한 코드 품질이 좋지 않아 죄송합니다. 최대한 빨리 배우고 있습니다!

코드는 다음과 같습니다.

import csv

def filecreator():
    print("----------INPUT--DATA----------")
    filename = input("File Name: ")
    print("A file has been created named",filename,".csv")
    print("-------------------------------")

    with open(filename+".csv", 'w', newline='') as csvfile:
        w = csv.writer(csvfile, delimiter=',')
        save = "y"
        while save == "y":
            device = input("Source of data: ")
            time_of_data_collection = ("When: ")
            first_data_set = input("Column 3 Title: ")
            second_data_set = input("Column 4 Title: ")
            #Here is where I want to have the break for it to be printed on a
            #second line
            drone = int(input("Drone Number: "))
            time = int(input("Time: "))
            temperature = input("Enter temperature: ")  
            windspeed = input("Enter windspeed: ")
            
            save = input("Would you like to save? Y/N: ")  
            if save.lower() == "y":
                w.writerow([drone, time, temperature, windspeed])   
                print("---Your data has been saved---")

        print("Program closed.")

def viewdata():
    print("----VIEW-DATA----")
    filename = input("File Name: ")
    print("-----------------")
    f = open(filename)
    csv_f = csv.reader(f)

    for row in csv_f:
      print (row)

    print("-----------------")

userinput = input("Enter I to input data, V to view data or C to do calculations: ")

if userinput in ("I", "i"):
    print("\nYou have chosen to input weather data to the program")
    filecreator()

elif userinput=="V" or "v":
    print("\nYou have chosen to view weather data.")
    viewdata()

elif userinput=="C" or "c":
    print("\nYou have chosen to perform calculations with weather data.")
패트릭 아트 너

수집 된 데이터 위에 헤더 열을 설정하려면 데이터를 요청 하는 루프 전에 요청하고 w.writerow([drone_header, time_header, temperature_header, windspeed_header])대신 열 헤더 정보 포함을 사용하여 데이터 항목에 대해 수행하는 것과 동일한 방식으로 작성합니다 .

에 대한 각 호출 csv_writer.writerow( [...] )은 한 줄을 작성합니다. csv_writer.writerows( [ [...], [...], [...], ... )목록 목록 을 사용 하고 제공 하면 모든 데이터를 한 번에 쓸 수 있습니다. 각 내부 목록은 한 행의 데이터를 나타냅니다.

여기에서 더 많은 것을 읽으십시오 :


여전히 수정해야 할 다른 사항이 많이 있습니다.

  • elif userinput=="V" or "v":elif userinput=="C" or "c":
  • 시간을 정수로 입력합니까?
  • 사용자 입력 위생 없음 (빈 입력, 유효하지 않은 숫자 등)
  • 현재 코드는 입력, 출력, 파일 쓰기 등의 혼합입니다.-일반적으로 좀 더 구조화하여 입력, 처리, 출력과 같은 섹션을 갖기를 원합니다 ( 혼합하고 일치 시킬 수 있지만 더 어렵게 만듭니다.

다음과 같이 수정할 수 있습니다.

import csv

def get_int(text, positive_only = True):
    """Handles input for valid (maybe positive only) integers"""
    while True:
        try:
            i = input(text)
            v = int(i)
            if positive_only and v < 0:
                raise ValueError()
            return v
        except ValueError:
            print(f"You need to input a {'non negative ' if positive_only else ''}number")

def filecreator():
    print("----------INPUT--DATA----------")
    filename = input("File Name: ") 

    # fix the filename for good and force a .csv extension
    if not filename.endswith(".csv"):
        filename += ".csv"
    print("Will use ",filename, "to store data.")
    print("-------------------------------")

    # ask headers (INPUT)
    headers = []
    while not headers:
        try:
            headerinput = input("Please enter column headers.They are used as heade for:\n\tdevice, time, data1 (Temperature), data2 (Windspeed)\nInput all comma seperated in one line (): ")
            device_header,time_header, data1_header, data2_header  = [h.strip() for h in headerinput.split(",") if h.strip()]
        except (ValueError, IndexError):
            continue
        headers = [device_header,time_header, data1_header, data2_header]

    # store all datapoinst in a list and write only once afterwards
    data = []
    while True:
        print("Data input:")
        drone = get_int(f"Drone Number ({device_header}):")
        time = get_int(f"Time ({time_header}):") # time as integer? 
        temperature = input(f"Enter temperature ({data1_header}):")
        windspeed = input(f"Enter windspeed ({data2_header}): ")

        data.append([drone,time,temperature,windspeed])

        save = input("Continue data entry? [Y/N]").lower().strip()
        if save == "n":
            break

    # not much of (PROCESSING) done with the data so ... empty 

    # write file (OUTPUT)
    with open(filename, "w", newline ="") as csvfile:
        w = csv.writer(csvfile, delimiter=',')
        w.writerow(headers)
        w.writerows(data)
        print("---Your data has been saved---")
    print("Program closed.")

def viewdata():
    print("----VIEW-DATA----")
    filename = input("File Name: ")
    print("-----------------")
    with open(filename) as f:
        csv_f = csv.reader(f)
        for row in csv_f:
          print (row) 
    print("-----------------")

userinput = input("Enter I to input data, V to view data or C to do calculations: ").strip().lower()

if userinput == "i": 
    print("\nYou have chosen to input weather data to the program")
    filecreator()

elif userinput=="v":
    print("\nYou have chosen to view weather data.")
    viewdata()

elif userinput=="c":
    print("\nYou have chosen to perform calculations with weather data.")
else:
    print ("\nWrong input.")

화면 출력 :

Enter I to input data, V to view data or C to do calculations: i

You have chosen to input weather data to the program
----------INPUT--DATA----------
File Name: aa
Will use  aa.csv to store data.
-------------------------------
Please enter column headers.They are used as heade for:
        device, time, data1 (Temperature), data2 (Windspeed)
Input all comma seperated in one line (): drone,time,data1,data2
Data input:
Drone Number (drone):42
Time (time):0815
Enter temperature (data1):hot
Enter windspeed (data2): breeze
Continue data entry? [Y/N]y
Data input:
Drone Number (drone):11
Time (time):9999
Enter temperature (data1):boiling
Enter windspeed (data2): hurricane
Continue data entry? [Y/N]n
---Your data has been saved---
Program closed.

생성 된 파일 :

drone,time,data1,data2
42,815,hot,breeze
11,9999,boiling,hurricane

읽고주의해야 할 기타 사항 :

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

find -exec를 사용하여 각 줄 앞에 파일 이름을 인쇄하는 방법은 무엇입니까?

분류에서Dev

"여러 사용자 입력을 한 줄에 인쇄하는 방법"

분류에서Dev

입력 상자에 새 줄을 인쇄하는 방법은 무엇입니까?

분류에서Dev

파이썬을 사용하여 텍스트 파일에 여러 줄 문자열의 전체 출력을 작성하는 방법은 무엇입니까?

분류에서Dev

가장 최근에 인쇄 된 줄을 입력으로 사용하는 방법은 무엇입니까?

분류에서Dev

UNIX : sed / awk / grep을 사용하여 파일의 특정 줄을 인쇄하는 방법은 무엇입니까?

분류에서Dev

CSV 파일을 사용하여 Python에서 로그인 코드 오류를 줄이는 방법은 무엇입니까?

분류에서Dev

SSIS를 사용하여 SQL 결과를 여러 CSV 파일로 내보내는 방법은 무엇입니까?

분류에서Dev

여러 사용자 입력을 사전에 입력 한 다음 숫자 순서로 인쇄하는 방법

분류에서Dev

PHP를 사용하여 CSV 파일을 mysql에 업로드하는 방법은 무엇입니까?

분류에서Dev

자바에서 명명 된 그룹을 사용하여 CSV 입력을 읽는 방법은 무엇입니까?

분류에서Dev

명령 줄을 사용하여 파일을 여러 폴더에 복사하는 방법은 무엇입니까?

분류에서Dev

여러 줄 문자열을 Blob에 인쇄하는 방법은 무엇입니까?

분류에서Dev

Powershell을 사용하여 PDF 파일을 순서대로 인쇄하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 여러 줄로 변수 값을 인쇄하는 방법은 무엇입니까?

분류에서Dev

grep에서 여러 줄을 그룹 구분자로 사용하는 방법은 무엇입니까?

분류에서Dev

여러 파일에서 마지막 줄을 인쇄하는 방법은 무엇입니까?

분류에서Dev

sed를 사용하여 파일에 여러 줄을 추가하는 방법은 무엇입니까?

분류에서Dev

인쇄 출력을 "3 개 이상의 인수"를 사용하여 변수 / 문자열로 변환하는 방법은 무엇입니까? (파이썬 3)

분류에서Dev

Notepad ++를 사용하여 여러 파일에서 줄을 찾고 바꾸는 방법은 무엇입니까?

분류에서Dev

bash를 사용하여 여러 파일에서 줄을 읽는 방법은 무엇입니까?

분류에서Dev

PHP를 사용하여 csv 파일에서 문자열을 분리하는 방법은 무엇입니까?

분류에서Dev

텍스트 파일 (줄 단위)을 읽고 출력을 nameS로 사용하여 Java에서 .pdf 파일을 만드는 방법은 무엇입니까?

분류에서Dev

지도를 사용하여 한 줄에 사용자 입력을 기반으로 여러 숫자를 인쇄하는 방법

분류에서Dev

macOS에서 명령 줄을 사용하여 인용 인쇄 가능한 파일을 디코딩하는 방법은 무엇입니까?

분류에서Dev

Selenium WebDriver의 속성 파일에서 여러 줄 속성을 사용하는 방법은 무엇입니까?

분류에서Dev

PHP에서 smarty를 사용하여 여러 파일을 업로드하는 방법은 무엇입니까?

분류에서Dev

ajax + jquery를 사용하여 여러 파일을 서버에 업로드하는 방법은 무엇입니까?

분류에서Dev

여러 confusionMatrix의 출력을 r의 단일 csv 파일에 저장하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    find -exec를 사용하여 각 줄 앞에 파일 이름을 인쇄하는 방법은 무엇입니까?

  2. 2

    "여러 사용자 입력을 한 줄에 인쇄하는 방법"

  3. 3

    입력 상자에 새 줄을 인쇄하는 방법은 무엇입니까?

  4. 4

    파이썬을 사용하여 텍스트 파일에 여러 줄 문자열의 전체 출력을 작성하는 방법은 무엇입니까?

  5. 5

    가장 최근에 인쇄 된 줄을 입력으로 사용하는 방법은 무엇입니까?

  6. 6

    UNIX : sed / awk / grep을 사용하여 파일의 특정 줄을 인쇄하는 방법은 무엇입니까?

  7. 7

    CSV 파일을 사용하여 Python에서 로그인 코드 오류를 줄이는 방법은 무엇입니까?

  8. 8

    SSIS를 사용하여 SQL 결과를 여러 CSV 파일로 내보내는 방법은 무엇입니까?

  9. 9

    여러 사용자 입력을 사전에 입력 한 다음 숫자 순서로 인쇄하는 방법

  10. 10

    PHP를 사용하여 CSV 파일을 mysql에 업로드하는 방법은 무엇입니까?

  11. 11

    자바에서 명명 된 그룹을 사용하여 CSV 입력을 읽는 방법은 무엇입니까?

  12. 12

    명령 줄을 사용하여 파일을 여러 폴더에 복사하는 방법은 무엇입니까?

  13. 13

    여러 줄 문자열을 Blob에 인쇄하는 방법은 무엇입니까?

  14. 14

    Powershell을 사용하여 PDF 파일을 순서대로 인쇄하는 방법은 무엇입니까?

  15. 15

    파이썬에서 여러 줄로 변수 값을 인쇄하는 방법은 무엇입니까?

  16. 16

    grep에서 여러 줄을 그룹 구분자로 사용하는 방법은 무엇입니까?

  17. 17

    여러 파일에서 마지막 줄을 인쇄하는 방법은 무엇입니까?

  18. 18

    sed를 사용하여 파일에 여러 줄을 추가하는 방법은 무엇입니까?

  19. 19

    인쇄 출력을 "3 개 이상의 인수"를 사용하여 변수 / 문자열로 변환하는 방법은 무엇입니까? (파이썬 3)

  20. 20

    Notepad ++를 사용하여 여러 파일에서 줄을 찾고 바꾸는 방법은 무엇입니까?

  21. 21

    bash를 사용하여 여러 파일에서 줄을 읽는 방법은 무엇입니까?

  22. 22

    PHP를 사용하여 csv 파일에서 문자열을 분리하는 방법은 무엇입니까?

  23. 23

    텍스트 파일 (줄 단위)을 읽고 출력을 nameS로 사용하여 Java에서 .pdf 파일을 만드는 방법은 무엇입니까?

  24. 24

    지도를 사용하여 한 줄에 사용자 입력을 기반으로 여러 숫자를 인쇄하는 방법

  25. 25

    macOS에서 명령 줄을 사용하여 인용 인쇄 가능한 파일을 디코딩하는 방법은 무엇입니까?

  26. 26

    Selenium WebDriver의 속성 파일에서 여러 줄 속성을 사용하는 방법은 무엇입니까?

  27. 27

    PHP에서 smarty를 사용하여 여러 파일을 업로드하는 방법은 무엇입니까?

  28. 28

    ajax + jquery를 사용하여 여러 파일을 서버에 업로드하는 방법은 무엇입니까?

  29. 29

    여러 confusionMatrix의 출력을 r의 단일 csv 파일에 저장하는 방법은 무엇입니까?

뜨겁다태그

보관