Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将列表导出为CSV_Python_Python 3.x_List_Csv_Export To Csv - Fatal编程技术网

Python 将列表导出为CSV

Python 将列表导出为CSV,python,python-3.x,list,csv,export-to-csv,Python,Python 3.x,List,Csv,Export To Csv,在Python中,我尝试将数据导出为CSV,用于定制音乐调整程序 这是我的目标(第1列从0到127,第2列是以频率表示的音高列表)。 我只需要删除第一行。 这段对话对我帮助很大。 在使用该线程中的代码时,我在Python Visualizer中实现了我的目标,但只完成了部分代码 我所有的代码: # Ask user for the Home Frequency print('What is your home frequency?') raw_tonic = input() t =

在Python中,我尝试将数据导出为CSV,用于定制音乐调整程序


这是我的目标(第1列从0到127,第2列是以频率表示的音高列表)。

我只需要删除第一行。


这段对话对我帮助很大。

在使用该线程中的代码时,我在Python Visualizer中实现了我的目标,但只完成了部分代码

我所有的代码:

# Ask user for the Home Frequency

print('What is your home frequency?')
raw_tonic = input()
t = int(raw_tonic)


# Ask user for an EDO

print('how many notes per octave do you want?')
raw_edo = input()
e = int(raw_edo)

# Spit out these frequencies into CSV



import csv

myFile = open("edotest9.csv", "w", newline="")

row = []
count = 0
writer = csv.writer(myFile)
row1 = []
for n in range(1, 129):
    for i in range(1, 2):
        row1.append(((t*2**((n-69)/e))))
    count = count + 1
    print(row1)
    writer.writerow(row1)
    row1[:] = [n]


myFile.close()
范围(1,2)内的i的

行1.append((t*2**((n-69)/e))
用python编写CSV的一般过程如下:

  • 构造一个二维数组。此二维数组中的每个数组表示CSV中的行
  • 通过将这个2D数组输入到writerows方法来创建CSV文件,就像我在下面做的那样
  • 代码:


    这很有效!如何控制第1列?您的代码使第1列和第2列的数字相同。但是我想让第1列从1到128,每行一个数字。(我的原始帖子中的视觉示例,标题为“我的目标”)太完美了,谢谢!您知道如何为第2行的“n”选择图案吗?例如,通过模式的一个循环将是n=69、72、75、77、80、83、86、88。所以是“3,3,2,3,3,3,3,2”的模式。对于第2列,我想将该模式扩展到整个1-128行,但是对于第1列,我想保持它的读数为1-128.Hmm,我明白了。我的问题是我需要(t*22((n-69)/e))公式来创建将出现在CSV输出文件上的数据。
    import csv
    
    # Ask user for the Home Frequency
    t = int(input('What is your home frequency?: '))
    
    # Ask user for an EDO
    e = int(input('how many notes per octave do you want?: '))
    
    # Split out these frequencies into CSV
    rows = []
    column2_diff_pattern = [3, 3, 2, 3, 3, 3, 2]
    diff_pattern_length = len(column2_diff_pattern)
    column2 = 0
    pattern_index = 0
    for n in range(1, 129):
        row = [n, t*2**((column2-69)/e)]
        rows.append(row)
        column2 = column2 + column2_diff_pattern[pattern_index]
        pattern_index = (pattern_index + 1) % diff_pattern_length
        
    # Do 'rows = rows[1:]' for removing the first row
    
    with open('edotest9.csv', 'w') as csvFile:
        writer = csv.writer(csvFile)
        writer.writerows(rows)