Python 3.x 如果Python脚本中没有';目录中不存在吗?

Python 3.x 如果Python脚本中没有';目录中不存在吗?,python-3.x,csv,Python 3.x,Csv,我是Python中CSV模块的新手,想知道如何在调用函数后动态创建CSV文件(可以是空的CSV文件)?CSV文件应创建(如果目录中不存在)或更新,以便添加数据(如果发现存在)。是否有一种解决方案允许我创建CSV文件,而不考虑使用的操作系统 目前,这是我到目前为止的想法: def create(): try: #What should I do here in order to check whether if t

我是Python中CSV模块的新手,想知道如何在调用函数后动态创建CSV文件(可以是空的CSV文件)?CSV文件应创建(如果目录中不存在)或更新,以便添加数据(如果发现存在)。是否有一种解决方案允许我创建CSV文件,而不考虑使用的操作系统

目前,这是我到目前为止的想法:

def create():
    try:                            
          #What should I do here in order to check whether if the file is existent or not?
    except IOError:
          #How to create the CSV file here?
    finally:
          #What should I do here in order to write/append to an existing CSV file?

create()

有人能提供一份如何做到这一点的蓝图吗?如何在不在我的目录中手动创建CSV文件的情况下创建CSV文件?

要打开文件,语法为:

with open('filename.csv', 'x') as file:
    file.write('your,csv,stuff')

第二个参数“x”指定要创建文件。请注意,如果它已经存在,则会产生一个错误,您必须对此进行处理。

要打开文件,语法如下:

with open('filename.csv', 'x') as file:
    file.write('your,csv,stuff')

第二个参数“x”指定要创建文件。请注意,如果它已经存在,将产生一个您必须处理的错误。

您可以在附加模式下打开一个文件。如果它存在,它将开始添加到末尾,如果它不存在,它将创建它。然后可以将该文件句柄传递给csv writer。然后,您可以稍后使用writer追加数据

import csv
from random import randint

#open the file or create it if it doesnt exist
with open ('test.dat','a', newline='') as my_file:
    csv_writter = csv.writer(my_file)

    #crate some random csv data
    my_data = [[randint(0, 9) for _ in range(10)] for _ in range(10)]

    #for each row append it to our CSV file
    for row in my_data:
        csv_writter.writerow(row)
文件内容

4,8,8,0,7,5,3,2,7,3
5,0,0,0,2,0,4,1,4,3
0,7,3,7,2,5,7,2,5,7
5,3,5,9,2,9,2,8,9,2
0,1,7,5,8,9,1,2,7,0
2,7,0,1,7,3,0,9,3,4
7,6,4,3,4,2,9,1,7,3
0,9,1,2,8,4,4,6,2,2
8,7,5,7,5,1,9,7,3,9
0,9,1,2,6,3,1,1,6,6

您可以在附加模式下打开文件。如果它存在,它将开始添加到末尾,如果它不存在,它将创建它。然后可以将该文件句柄传递给csv writer。然后,您可以稍后使用writer追加数据

import csv
from random import randint

#open the file or create it if it doesnt exist
with open ('test.dat','a', newline='') as my_file:
    csv_writter = csv.writer(my_file)

    #crate some random csv data
    my_data = [[randint(0, 9) for _ in range(10)] for _ in range(10)]

    #for each row append it to our CSV file
    for row in my_data:
        csv_writter.writerow(row)
文件内容

4,8,8,0,7,5,3,2,7,3
5,0,0,0,2,0,4,1,4,3
0,7,3,7,2,5,7,2,5,7
5,3,5,9,2,9,2,8,9,2
0,1,7,5,8,9,1,2,7,0
2,7,0,1,7,3,0,9,3,4
7,6,4,3,4,2,9,1,7,3
0,9,1,2,8,4,4,6,2,2
8,7,5,7,5,1,9,7,3,9
0,9,1,2,6,3,1,1,6,6

您可以直接将df写入csv

import pandas as pd

df={'id':[1,2,3],'name':['ABC','XYZ','LMN']}
df=pd.DataFrame(df)
df.to_csv('people6.csv',index=False)

您可以直接将df写入csv

import pandas as pd

df={'id':[1,2,3],'name':['ABC','XYZ','LMN']}
df=pd.DataFrame(df)
df.to_csv('people6.csv',index=False)

只要打开文件就可以了

import csv

with open(“files.csv”, “a”) as f:
    read_file = csv.writer(f)
“a”参数允许您在每次打开和添加数据时追加一行新行。查看这些不同的参数,以适合您的需要。但在回答您的问题时,这就是创建新的空csv文件所需的全部内容。你只要打开它就可以了

import csv

with open(“files.csv”, “a”) as f:
    read_file = csv.writer(f)

只要打开文件就可以了

import csv

with open(“files.csv”, “a”) as f:
    read_file = csv.writer(f)
“a”参数允许您在每次打开和添加数据时追加一行新行。查看这些不同的参数,以适合您的需要。但在回答您的问题时,这就是创建新的空csv文件所需的全部内容。你只要打开它就可以了

import csv

with open(“files.csv”, “a”) as f:
    read_file = csv.writer(f)

为什么需要检查文件是否存在?你就不能在附加模式下打开这个文件,如果它不存在,它会为你创建它哦,我不知道。我只想用Python创建一个空的CSV文件。不需要数据。我该怎么做?你的评论真的没有意义。你是说你想要一个能创建一个空文件的程序吗?没有在里面放任何数据?是的!就这样。之后,当我希望添加数据时,它只会将其附加到现有文件中,而不是再次创建新文件。这是我的要求。但你的意思是在同一个程序中吗?为什么需要检查文件是否存在?你就不能在附加模式下打开这个文件,如果它不存在,它会为你创建它哦,我不知道。我只想用Python创建一个空的CSV文件。不需要数据。我该怎么做?你的评论真的没有意义。你是说你想要一个能创建一个空文件的程序吗?没有在里面放任何数据?是的!就这样。之后,当我希望添加数据时,它只会将其附加到现有文件中,而不是再次创建新文件。这是我的要求。但你的意思是在同一个程序中吗?谢谢你的回复,但是我如何才能只创建一个空的CSV文件(没有数据)?你可以简单地使用
pass
语句,而不是在你的文件中写入内容。如果文件存在,我如何处理错误?你能在你的代码中演示一个基本的例子吗?谢谢你的回答,但是我如何才能只创建一个空的CSV文件(没有数据)?你可以简单地使用
pass
语句而不是在你的文件中写入内容。如果文件存在,我如何处理错误?你能用你的代码演示一个基本的例子吗?